mybatis3-IDEA搭建源码阅读环境

471 阅读3分钟

目的

这篇文章只是为了记录如何快速的利用IDEA搭建mybatis源码阅读环境。

我们优先使用官方的文档作为阅读源码的最大引路人。因为mybatis官方文档已经是很完整的。我们看懂了官方文档就是了解了mybatis的核心思想和使用方式。

资料

[mybatis官方文档](mybatis – MyBatis 3 | 入门)

步骤 主要有两个

1、下载源码和依赖进行编译

2、跟着官方文档进行入门级代码编写。

  1. 下载源码和依赖进行编译

    1. 有两个方案,第一个是github直接download。第二个就是使用gitee加速了。我这里是直接download的。也有人喜欢git 进行clone。但是我想着这个我是会在里面增加很多理解的注释和测试,所以就不用git 进行clone。

      这里给出地址 [mybatis github](mybatis/mybatis-3: MyBatis SQL mapper framework for Java (github.com)) 我下载的是里面的一个tag 3.5.7的版本。

    2. 这里面有一个点是我们还要下载依赖,我们可以打开mybatis源码中的pom文件查看他依赖的parent。

      例如我的是32这个版本,我就需要去下载对应的一个依赖,我们直接去github下载。[mybatis-parent](mybatis/parent: The MyBatis parent POM which has to be inherited by all MyBatis modules (github.com))同样是去tag中找合适自己的版本。

    3. 然后利用idea新建一个maven项目。我的是mybatisL。

      1. 将解压后的mybatis源码和parent源码增加到中。

      2. 这里开始修改mybatisL的pom。

        1. packaging打包方式改为pom。

        2. 增加modules将mybatis和parent写进去。

          <modules> 
          <module>parent-mybatis-parent-32</module> 
          <module>mybatis-3-mybatis-3.5.7</module> 
          </modules>
          
        3. mybatis依赖增加parent的真实路径。

          <relativePath >../parent-mybatis-parent-32/pom.xml</relativePath>
          
        4. 然后查找mybatis和parent中的pom关于pdf的依赖和插件,注释或者直接删除。

        5. 最后在可以利用idea进行编译。他可以帮你跳过test。然后先编译parent再编译mybatis即可。

        6. success就是环境搭建好了。

      3. 后面我们就根据文档进行测试代码的编写。

        1. 我们先准备数据库。

          1. 一张user表,一张role表。
          CREATE TABLE `t_user` (
            `id` int NOT NULL AUTO_INCREMENT COMMENT 'id',
            `uname` varchar(64) NOT NULL DEFAULT '' COMMENT '用户名',
            `password` varchar(128) NOT NULL DEFAULT '' COMMENT 'pwd',
            PRIMARY KEY (`id`)
          ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
          
          CREATE TABLE `role` (
            `id` int DEFAULT NULL,
            `role_name` varchar(255) DEFAULT NULL,
            `note` varchar(255) DEFAULT NULL
          ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci                    
          
          1. 然后配置mybatis-config.xml。我建议直接使用mybatis官方的最简配置进行修改。只需要修改括号里面的参数和修改mapper就行了。
          <?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="${driver}"/>
                  <property name="url" value="${url}"/>
                  <property name="username" value="${username}"/>
                  <property name="password" value="${password}"/>
                </dataSource>
              </environment>
            </environments>
            <mappers>
              <mapper resource="org/mybatis/example/BlogMapper.xml"/>
            </mappers>
          </configuration>
          
          1. 然后定义一个mapper接口和xml。进行操作,这个部分就不贴代码了。
          2. 直接写个test执行一下。
          @Test
              public void test() throws IOException {
                  InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
                  SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
                  SqlSession session = factory.openSession();
                  // 传统方法,这里是命名空间,注意看官方文档。
                  List<Object> list = session.selectList("com.shengxi.mybatis.mapper.UserMapper.selectAll");
                  System.out.println(JSON.toJSONString(list));
                  // 简化方法
                  UserMapper mapper = session.getMapper(UserMapper.class);
                  List<UserPO> userPOList = mapper.selectAll();
                  System.out.println(JSON.toJSONString(userPOList));
              }
          

          正常执行即可。