【Mybatis源码解析第二章】搭建Mybatis源码阅读环境

缘起

看完了第一章的内容,想必你已经对jdbc的使用复习了一遍。那么如果我们要使用Mybatis实现上一章的查询数据的功能,应该怎么写呢?
你可以在项目中引入Mybatis的jar包,然后书写相关查询代码。但是我们是主要研究源码,如果采用jar包的方式调试的时候会有诸多不便。所以我们需要先搭建Mybatis的源码阅读环境。

源码下载并导入idea

首先去github下载mybatis的源码,本处所用源码为3.5.4
gitHub链接
下载完成之后导入到idea,导入完成之后如图所示
【Mybatis源码解析第二章】搭建Mybatis源码阅读环境_第1张图片

书写使用代码

新建一个test包用来放调试源码的代码
【Mybatis源码解析第二章】搭建Mybatis源码阅读环境_第2张图片
在test包下面新建Test实体类

public class Test {
  private String id;
  private String name;
  //get set方法略
}

在resource下面新建一个mappers 文件夹,在mappers 中新建Test实体对应的映射文件TestMapper.xml




<mapper namespace="MyMapper">
  
  <select id="selectTest" resultType="org.apache.ibatis.test.Test">
      select * from test where id = #{id}
   select>
mapper>

在resource根目录新建mybatis配置文件mybatis-config.xml




<configuration>
  <properties>
    <property name="driver" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://127.0.0.1:3306/db_test?useUnicode=true&characterEncoding=UTF8&useSSL=false&autoReconnect=true"/>
    <property name="username" value="root"/>
    <property name="password" value="123456"/>
  properties>

  
  <environments default="test">
    <environment id="test">
      
      <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="mappers/TestMapper.xml" />
  mappers>
configuration>

新建调试mybatis的类:TestMain,写入一个main方法

public class TestMain {
  public static void main(String[] args) throws IOException {
    // 指定全局配置文件
    String resource = "mybatis-config.xml";
    // 读取配置文件
    InputStream inputStream = Resources.getResourceAsStream(resource);
    // 构建sqlSessionFactory
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    // 获取sqlSession
    SqlSession sqlSession = sqlSessionFactory.openSession();
    // 操作CRUD,第一个参数:指定statement,规则:命名空间+“.”+statementId
    // 第二个参数:指定传入sql的参数:这里是用户id
    Test test = sqlSession.selectOne("TestMapper.selectTest", 1);
    System.out.println(test.getName());
  }
}

你可能会发现好像使用方法跟项目中有所不同,这是因为在项目中Mybatis往往是结合Spring一起来使用的,而本文是单独的Mybatis的使用方式。
在前面这些文件全部建好后的目录结构如下
【Mybatis源码解析第二章】搭建Mybatis源码阅读环境_第3张图片
我们运行上诉main方法,运行结果如下
在这里插入图片描述

总结

本章讲述了如何下载源码以及书写一个入口程序,那么下一章我们来说说Mybatis的内部逻辑是怎样的。

你可能感兴趣的:(Mybatis)