MyBatis 是一款優秀的持久層框架,被各大互聯網公司使用,本文使用Spring Boot整合Mybatis,並完成CRUD操做。html
爲何要使用Mybatis?咱們須要掌握Mybatis嗎?
說的官方一點:java
MyBatis 是一款優秀的持久層框架,它支持定製化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎全部的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可使用簡單的 XML 或註解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java對象)映射成數據庫中的記錄。mysql
說的功利一點:spring
聽說目前各大互聯網公司一般使用Mybatis,還不趕快學習一下嗎?sql
怎麼使用?
這纔是本文的重點。數據庫
新建Spring Boot工程和導入Eclipse這些在這裏就不囉嗦了,不會的能夠查看只需兩步!Eclipse+Maven快速構建第一個Spring Boot項目。跨域
1. pom.xml添加依賴
Spring Boot整合Mybatis須要引入 mybatis-spring-boot-starter;我使用的是MySQL數據庫,須要引入ysql-connector-java。緩存
<!-- mysql驅動 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- spring-boot整合mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
複製代碼
2. application.property配置Mybatis和數據源
mybatis.config-location=classpath:mapper/mybatis_config.xml
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
mybatis.type-aliases-package=com.shangguan.mybatis.entity
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/spring_boot?serverTimezone=GMT%2B8
spring.datasource.username = root
spring.datasource.password = 123456
複製代碼
例如個人mybatis_config.xml的路徑爲/mybatis/src/main/resources/mapper/mybatis_config.xml(下面是目錄結構圖),那麼個人mybatis.config-location配置爲classpath:mapper/mybatis_config.xml,請注意必定要根據本身項目的目錄結構進行配置Mybatis。數據庫也同樣。bash
mapper包裏面是Mybatis的映射類。mybatis
interceptor包是攔截器,若是還有疑問請參考以前的博文:Spring Boot配置攔截器及實現跨域訪問
3. Mybatis全局配置文件
MyBatis 的配置文件包含了會深深影響 MyBatis 行爲的設置(settings)和屬性(properties)信息。關於配置文件的詳解請看 xml映射配置文件。
mybatis_config.xml
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>
複製代碼
4. 實體類User
User使用的和以前使用的同樣,沒有修改。
User:
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String userName;
private String passWord;
public User() {
super();
}
public User(String userName, String passWord) {
super();
this.userName = userName;
this.passWord = passWord;
}
public Long getId() {
return id;
}
public void setId(Long 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;
}
@Override
public String toString() {
return "userName " + this.userName + ", pasword " + this.passWord;
}
}
複製代碼
5. 添加User的映射文件和映射類
SQL 映射文件有不多的幾個頂級元素(按照它們應該被定義的順序):
-
cache – 給定命名空間的緩存配置。
-
cache-ref – 其餘命名空間緩存配置的引用。
-
resultMap – 是最複雜也是最強大的元素,用來描述如何從數據庫結果集中來加載對象。
-
parameterMap – 已廢棄!老式風格的參數映射。內聯參數是首選,這個元素可能在未來被移除,這裏不會記錄。
-
sql – 可被其餘語句引用的可重用語句塊。
-
insert – 映射插入語句
-
update – 映射更新語句
-
delete – 映射刪除語句
-
select – 映射查詢語句
更多信息請參考 xml映射文件 。
增刪改查的SQL語句在UserMapper.xml裏面書寫,具體的看代碼,裏面有註釋。
有幾點須要注意的地方:
①