GitHub - houbb/mybatis: The simple mybatis.(手写简易版 mybatis) (original) (raw)

项目简介

mybatis 是一款简化版的 mybatis 实现。

Maven Central Build Status Open Source Love

创作目的

快速开始

需要

maven 引入

com.github.houbb mybatis 0.1.0

准备工作

在 test 数据库执行下面的建表语句。

-- auto-generated definition use test; create table user ( id int auto_increment primary key comment '唯一主键', name varchar(100) not null comment '姓名', password varchar(100) not null comment '密码', create_time char(17) comment '创建时间' ) CHARACTER SET utf8 COLLATE utf8_general_ci;

-- init insert into user (name, password) value ('luna', '123456');

<dataSource>
    <property name="driver" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/test"/>
    <property name="username" value="root"/>
    <property name="password" value="123456"/>
</dataSource>

<mappers>
    <mapper resource="mapper/UserMapper.xml"/>
</mappers>

<plugins>
    <plugin interceptor="com.github.houbb.mybatis.plugin.SimpleLogInterceptor"/>
</plugins>

<typeHandlers>
    <typeHandler javaType="java.util.Date" handler="com.github.houbb.mybatis.typehandler.DateTypeHandler"/>
</typeHandlers>

备注:默认使用的是 mysql 5.7,如果为 8.0+,需要自行引入 jar。

运行测试代码

public static void main(String[] args) { Config config = new XmlConfig("mybatis-config-5-7.xml");

SqlSession sqlSession = new DefaultSessionFactory(config).openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

User user = userMapper.selectById(1L);
System.out.println(user);

}

User{id=1, name='ryo', password='123456', createTime=Wed Jul 01 22:03:01 CST 2020}

拓展阅读

从零开始手写 mybatis(一)MVP 版本

手写 mybatis 系列(二)mybatis interceptor 插件机制详解

从零开始手写 mybatis (三)jdbc pool 从零实现数据库连接池

后期 road-map

- [ ] 数据库厂商标识(databaseIdProvider)

保持核心功能的简单,保证使用的强大便捷。