不知道大家有没有感觉到,当你五年工作经验的时候其实并没有比一年经验的同学更加资深,停留在应用阶段,沉浸在迭代业务代码流水中,工作内容就是接口的封装、调用,框架的API调用...想改变自己什么时候都不晚,do now,众多框架中Mybatis框架代码轻量,设计精巧很适合作为你的第一份源码,接下来我会从最开始的本地环境搭建,到源码分析、Debug,总结等阶段,全流程的来解读MyBatis,一起进步吧。
作为系列的第一篇,我们先不考虑设计、原理,先在本地把Mybatis环境搭建起来,找找感觉,全篇文章围绕以下几个部分来分解:
1.下载Mybatis源码项目,用来我们做Debug,给源码加注释。
2.搭建本地测试项目,作为我们了解源码的入口,通过例子进入源码。
3.跑通一个最简单的查询例子,给源码加上自己的第一行注释。
下载Mybatis源码项目:
1). Mybatis-GitHub地址:https://github.com/mybatis/mybatis-3,选择一个版本进行下载,以3.4.6为例:
两种方式,可以使用 git clone https://github.com/mybatis/mybatis-3.git,也可以直接下载ZIP包然后倒入编辑器,项目现在完成后倒入IDEA等编译器,然后配置maven,maven中添加阿里云仓库,如图:
打开项目的pom文件,发现mybatis依赖mybatis-parent,我们再去github下载mybatis-parent项目,版本为图中的29版本:
地址:https://github.com/mybatis/parent/tree/mybatis-parent-29
接下来将下载好的parent项目,倒入到和myabtis同一个工程里,如图:
注释掉mybatis项目中pom文件里的pdf,如图:
修改mybatis、parent项目中的version,如图:
分别maven clean install,parent、mybatis项目,如图:
搭建本地测试项目:
接下来创建测试项目,如图:
写一个查询学生数据例子,创建或修改以下文件,如图:
修改pom文件,加入以下:
<properties>
<junit.version>4.12</junit.version>
<mybatis.version>3.2.8</mybatis.version>
<mysql.version>5.1.32</mysql.version>
<druid.version>1.0.9</druid.version>
</properties>
<dependencies>
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- MySql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- Junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<!-- 加载配置文件 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
创建Student类:
创建StudentMapper接口:
创建mybatis-config.xml:
创建StudentMapper.xml:
创建一张student表:
是不是很激动,查询出来了,但是我们的任务才刚刚开始,因为我们用的不是我们下载的mybatis包,现在我们需要进行替换:
别忘了,要用jdk8或以上版本编译项目,我在启动的时候报了一个错:
需要加入pom
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.26.0-GA</version>
</dependency>
测试一下,ok了!使用的是我们自己下载的jar
最后一步,开始debug源码,并添加一条注释,我们还需要做一件事关联项目(有的需要有的不需要)
到此,我们成功的使用自己的mybatis.jar,并且可以添加自己的注释,准备工作已经做好了。