1.2.下载 Mybatis 源码并导入至 IDE 工具
下载Mybatis的源码
打开浏览器输入网址
https://github.com/mybatis/mybatis-3
即可访问Mybatis
在Github中的仓库。
截止到目前为止,mybatis
的最新版本是3.5.3-SNAPSHOT
,但是因为我之前学习过程中使用的版本是3.5.0-SNAPSHOT
,因此这篇笔记还是针对3.5.0-SNAPSHOT
来写。
依赖环境的安装
jdk(1.8+)
因为
mybatis3
使用了JDK1.8
的一些新特性,所以此处需要使用JDK 1.8+
的版本。现在通过官网下载 JDK8+ 的版本需要登录。
获取jdk
$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession; $cookie = New-Object System.Net.Cookie; $cookie.Name = "oraclelicense"; $cookie.Value = "accept-securebackup-cookie"; $cookie.Domain = ".oracle.com";$session.Cookies.Add($cookie); iwr -Method GET -WebSession $session -uri https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz -OutFile jdk.tar.gz
wget -nc --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
maven
windows
下载Maven
解压安装包,并进行简单的配置
点击下载解压工具:7zip
解压获取到的
maven
压缩文件,得到名为apache-maven-3.6.1
的目录,根据自己的需要将其移动到指定的文件夹内,其内部文件大致如下:进入
conf
目录,简单编辑其中的settings.xml文件:<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!-- 配置maven本地仓库存储地址,尽量配置该地址,避免下载的jar包存放在C盘内。 如果是非windows系统,根据自己的需求变更该参数。 --> <localRepository>F:\data\repository</localRepository> <mirrors> <!-- 配置阿里云中央仓库,提高下载jar包的速度 --> <id>nexus-public-snapshots</id> <mirrorOf>*</mirrorOf> <mirrorOf>public-snapshots</mirrorOf> <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url> </mirror> </mirrors> </settings>
添加环境变量
这一步根据自己的需要决定是否添加到环境变量。
首先回到
maven
工程的根目录:按住键盘的
shift
键的同时,点击鼠标右键,选择在此处打开Powerschell窗口
。在弹出的
Powerschell
窗口中,执行下列命令(直接一次性复制下列四条命令执行即可):$command='-noprofile -command ' + "`$current=`'$pwd`'" + ';[environment]::SetEnvironmentVariable(""""MVN_HOME""",$current,""""machine"""");' Start-Process -FilePath powershell.exe -ArgumentList $command -Verb runas; $command='-noprofile -command [environment]::SetEnvironmentVariable(""""path""",$env:path+"""";%MVN_HOME%\bin;"""",""""machine"""");' Start-Process -FilePath powershell.exe -ArgumentList $command -Verb runas;
命令执行完毕,如果没有报错,重新开启一个
Powershell
窗口执行mvn -v
将会打印出该maven
工程的版本信息。
linux
wget -nc http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz tar -zxvf apache-maven-3.6.1-bin.tar.gz #配置环境变量 mv apache-maven-3.6.1 /usr/local/maven maven_env_exist=$(awk '{print}' /etc/profile |grep "#MAVEN_SETTINGS@JPANDA" &>>/dev/null;echo $?) if [ $maven_env_exist -gt 0 ] then echo " #MAVEN_SETTINGS@JPANDA export M2_HOME=/usr/local/maven export PATH=\$M2_HOME/bin:\$PATH #MAVEN ">>/etc/profile fi ln -s /usr/local/maven/bin /usr/local/bin/maven source /etc/profile
进入
/usr/local/maven/conf
目录,简单编辑其中的settings.xml文件:<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!-- 配置maven本地仓库存储地址,尽量配置该地址,避免下载的jar包存放在C盘内。 如果是非windows系统,根据自己的需求变更该参数。 --> <localRepository>/data/maven/repository</localRepository> <mirrors> <!-- 配置阿里云中央仓库,提高下载jar包的速度 --> <id>nexus-public-snapshots</id> <mirrorOf>*</mirrorOf> <mirrorOf>public-snapshots</mirrorOf> <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url> </mirror> </mirrors> </settings>
输入命令
mvn -v
查看当前maven
工程的版本信息。
git
windows
下载 Git For Windows
安装
启动获取到的
Git-2.22.0-64-bit.exe
安装程序,点击
Next
按钮继续执行安装程序,选择安装目录。点击
Next
按钮进入组件选择界面。根据自己的需求选择组件,这里我除了最后一个更新检查
Check daily for Git for windows updates
之外全部选中。点击
Next
按钮,选择对应的开始菜单文件夹。这里我是用默认的
Git
目录,点击Next
按钮,进入选择Git编辑器界面。这里我选择使用
VIM
,之后一路点击Next
继续。最后点击
Install
按钮完成最后的安装操作。
linux
执行下列命令即可完成安装:
yum install -y git
获取Mybatis源码并导入至IDE工具
step1: 获取mybatis源码
这里获取Mybatis的源码有两种方式,一种是通过github获取Mybatis官方源码,一种是通过gitee获取翻译成中文的源码。
在这里两种源码在代码层面上是一致的,区别仅限于我为
gitee
上的源码添加了大量中文注释。在自己的工作目录下执行
git
命令克隆Mybatis
源码(二选一):一: 通过github获取Mybatis官方源码,鉴于国内访问
github
太慢,我在gitee
fork了mybatis
源码,因此下面两个命令得到的代码是一样的。git clone -b mybatis-3.5.0 https://github.com/mybatis/mybatis-3.git 或者 git clone -b mybatis-3.5.0 https://gitee.com/topanda/mybatis-3-original.git
该命令的作用是克隆标签为
mybatis-3.5.0
的Mybatis源码到当前目录下。二: 通过gitee获取翻译成中文的源码
git clone https://gitee.com/topanda/mybatis-3.git
该命令的作用是克隆Mybatis源码到当前目录下。
此时在我们的工作目录下应该多了一个名为
mybatis-3-original
或者mybatis-3
的文件目录。目录的名称取决于使用的git命令,如果是通过gitee获取的英文源码,则名称为
mybatis-3-original
,否则为mybatis-3
.step2:导入源码到IDE工具
在获取到mybatis的源码之后我们可以将该源码导入到自己常用的IDE工具内,因为笔者常用
IntelliJ IDEA
,所以这里建议使用IntelliJ IDEA
,当然你依然可以根据自己的喜好,选择自己喜欢的工具。将工程导入至
IDEA
此处使用的
IntelliJ IDEA
版本是IntelliJ IDEA 2018.2 (Ultimate Edition)
点击
IDEA
左上角的File
按钮,然后选择Open
按钮。 之后在弹出框内选择Mybaits
源码所处的目录,点击OK
即可将源码导入至IDEA
中。导入源码之后,等待IDEA编译完成即可。
将工程导入至
Eclipse
此处使用的
Elipse
版本是Elipse Photon Release (4.8.0)
.点击
Eclipse
左上角的File
按钮,选择弹出的Open Projcets From File System
.在弹出框内点击
Directory
按钮,选择Mybaits
源码所处的目录,点击确定。 等待Eclipse
校验通过,点击左下角的Finish
按钮,即可完成导入工作。
此时我们在项目根目录下执行
mvn clean compile
命令即可完成源码的编译工作。
修改POM文件,添加依赖便于后续使用
修改项目根目录下的pom.xml
文件,在其dependencies
代码块中添加下列代码:
<!-- MySQL相关 -->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
<scope>test</scope>
</dependency>
<!--添加lombok依赖-->
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.56</version>
<scope>test</scope>
</dependency>
这里唯一需要注意的就是mysql-connector-java
的版本号需要和使用的Mysql
数据库保持一致。
添加一个新的单元测试包,用于后续的学习使用
在mybatis
工程的src/test/java/org/apache/
目录下,新建一个名为learning
的子包,该包将会用于存放后期学习使用的测试类。
调整日志级别
修改mybatis
工程src/test/java/resources/
目录下的log4j.properties
配置文件。
### 全局日志级别为ERROR
log4j.rootLogger=ERROR, stdout
### mybatis中的日志级别为INFO级别
log4j.logger.org.apache.ibatis=INFO
### 自定义学习使用的包日志级别为DEBUG,降低级别为DEBUG目的是为了打印SQL内容
log4j.logger.org.apache.learning=DEBUG
log4j.logger.org.apache.ibatis.session.AutoMappingUnknownColumnBehavior=WARN, lastEventSavedAppender
### Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
log4j.appender.lastEventSavedAppender=org.apache.ibatis.session.AutoMappingUnknownColumnBehaviorTest$LastEventSavedAppender