1. 程式人生 > >mybatis源碼閱讀筆記-開篇

mybatis源碼閱讀筆記-開篇

integer 記錄 env stat span nbsp 基礎 src not null

前言

背景

為了更好的理解mybatis的原理,花點時間了解一下它的內部過程。

分析的內容

主要分析如下四大內容:

1、分析Mybatis是怎麽解析配置文件。

2、分析Mybatis是如何執行Sql並映射結果。

3、分析Mybatis是如何使用緩存的。

4、分析mybatis的插件的實現原理。

第一章:搭建源碼的調試環境

環境準備

1、mybatis調試項目建立

在spring 集成開發工具STS中新建一個簡單的maven項目,在項目中引入mybatis的依賴包和mysql的驅動包。

技術分享圖片

為了保證項目中把源代碼下載下來,在STS中,需要對maven進行以下的相關配置。

技術分享圖片

2、調試支撐數據庫建立

在mysql中新建一個測試的數據庫lookmybatis和測試的數據表user。

技術分享圖片

對應的創建數據表的sql語句

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`username` varchar(255) NOT NULL,

`password` varchar(255) NOT NULL,

`name` varchar(255) NOT NULL,

`gender` int(11) NOT NULL,

`mobile` varchar(255) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3、項目工程代碼整合

在項目工程中新建user的實體類,對應於數據庫的user表

技術分享圖片

User.java 的源代碼

public class User implements Serializable {

private static final long serialVersionUID = 1L;

private Integer id;

private String username;

private String password;

private String name;

private String gender;

private String mobile;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getGender() {

return gender;

}

public void setGender(String gender) {

this.gender = gender;

}

public String getMobile() {

return mobile;

}

public void setMobile(String mobile) {

this.mobile = mobile;

}

@Override

public String toString() {

return "User [id=" + id + ", username=" + username + ", password=" + password + ", name=" + name + ", gender="

+ gender + ", mobile=" + mobile + ", toString()=" + super.toString() + "]";

}

}

從官方網站上(http://www.mybatis.org/mybatis-3/zh/getting-started.html)獲取一個基礎的mybatis配置文件,放置到項目的根目錄下。比如命名為:mybatis-config.xml,修改其中的數據庫連接信息和mybatis的映射文件。

技術分享圖片

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.cj.jdbc.Driver"/>

<property name="url" value="jdbc:mysql://localhost:3306/lookmybatis?serverTimezone=GMT%2B8"/>

<property name="username" value="root"/>

<property name="password" value="123456"/>

</dataSource>

</environment>

</environments>

<mappers>

<mapper resource="mapper/user.xml"/>

</mappers>

</configuration>

新建需要測試的sql映射文件,項目中放置在了項目根目錄下的mapper的文件夾下的user.xml。

技術分享圖片

在項目中的main方法中編寫測試代碼,測試環境是否ok

技術分享圖片

在lookmybatis數據庫的user表中插入一條id為1的記錄。

技術分享圖片

如果沒有什麽問題的話,將在控制臺中打印出查詢的記錄信息。

技術分享圖片

看到上述界面,表示基礎的mybatis運行環境搭建完畢。

mybatis源碼閱讀筆記-開篇