Mybatis源码系列(一)搭建Mybatis源码测试项目

280 阅读2分钟

搭建mybatis测试项目

概览

  • 创建项目
  • 表结构
  • 相关代码
  • 运行
  • 总结

创建项目

如下图,创建项目,maven依赖如下:

     //maven依赖
      <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.0</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.37</version>
        </dependency>

image.png

表结构

只创建了一张最简单的表User,包含两个字段,id和name

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

表数据一条

image.png

相关代码

实体类User

public class User {
    private String name;
    private Integer id;
    //get setter
     ......
}

接口UserMapper

public interface UserMapper {
    User selectUser(Integer id);
}

配置文件UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aby1993.mapper.UserMapper">
    <select id="selectUser" resultType="com.aby1993.model.User">
    select * from User where id = #{id}
  </select>
</mapper>

配置文件mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="UserMapper.xml"/>
    </mappers>
</configuration>

运行

测试代码App

public class App {
    public static void main(String[] args) throws Exception {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        SqlSession session = sqlSessionFactory.openSession();

        UserMapper mapper = session.getMapper(UserMapper.class);

        User user = mapper.selectUser(1);

        System.out.println(user);

        session.close();
    }
}

运行,成功查询出来数据,如下:

image.png

总结

mybatis源码的测试环境,已经搭好了,下一篇开始进行真正的源码分析,按照我的规划,是每周一到两篇。之所以我选择读源码从mybatis开始,是因为mybatis源码,个人感觉跟spring比起来,算是很简单的了,所以相对来说,比较容易理解。至于mybatis相关的使用,可以参考中文文档:mybatis.org/mybatis-3/z…,好了就这些,加油吧,今年形势不好。