在Spring Boot的應用開發中,MyBatis是一個非常流行的持久層框架,它支援定製化SQL、儲存過程以及高階對映。在本篇文章中,我們將學習如何在Spring Boot專案中整合MyBatis,以便透過MyBatis進行資料庫操作。
新增MyBatis依賴
首先,我們需要在專案中新增MyBatis的依賴。在Spring Boot中,我們通常會使用Gradle或Maven作為構建工具來管理專案依賴。這裡,我們將以Gradle為例,展示如何新增MyBatis的依賴。
開啟專案的build.gradle檔案,我們需要新增MyBatis Spring Boot Starter的依賴項。這個依賴項會幫助我們更容易地將MyBatis整合到Spring Boot應用中。
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.3'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'cn.daimajiangxin'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
targetCompatibility = '17'
}
repositories {
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'mysql:mysql-connector-java:8.0.17'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3'
}
在上面的build.gradle檔案中,我們新增了以下依賴項:
- spring-boot-starter-web:Spring Boot Web Starter,它包含了構建Web應用所需的基本依賴。
- mybatis-spring-boot-starter:MyBatis Spring Boot Starter,它提供了MyBatis和Spring Boot整合的簡化配置。
- mysql-connector-java:MySQL資料庫驅動,用於連線MySQL資料庫。
配置資料來源和MyBatis
配置好依賴後,你可以透過Gradle的命令列工具來同步專案依賴,或者在IDE中自動同步。一旦依賴同步完成,你就可以開始編寫Mapper介面和XML對映檔案,並使用MyBatis來運算元據庫了。
請確保你的application.properties或application.yml檔案中已經配置了正確的資料庫連線資訊,例如:
# datasource 配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/你的資料庫名?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false&allowPublicKeyRetrieval=true
spring.datasource.username=你的資料庫使用者名稱
spring.datasource.password=你的資料庫密碼
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.show-sql=true
# MyBatis 配置
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=cn.daimajiangxin.springboot.learning.model
建立實體
參考上一篇文章,從零開始學Spring Boot系列-整合MySQL中建立的User類。
建立Mapper介面和XML檔案
在專案的src/main/java目錄下,建立mapper 的一個package ,再建立Mapper介面。例如,建立一個UserMapper.java介面:
package cn.daimajiangxin.springboot.learning.mapper;
import cn.daimajiangxin.springboot.learning.model.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface UserMapper {
List<User> findAllUsers();
}
同時,在src/main/resources/mapper/目錄下建立對應的XML對映檔案,如UserMapper.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.daimajiangxin.springboot.learning.mapper.UserMapper">
<resultMap id="BaseResultMap" type="cn.daimajiangxin.springboot.learning.model.User">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="email" column="email" jdbcType="VARCHAR"/>
<result property="age" column="age" jdbcType="INTEGER"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,name,email,
age,remark
</sql>
<select id="findAllUsers" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"></include>
from user
</select>
</mapper>
使用Mapper
在你的Service類中,可以透過注入Mapper介面來使用MyBatis的功能。例如,在UserService.java中:
package cn.daimajiangxin.springboot.learning.service;
import cn.daimajiangxin.springboot.learning.mapper.UserMapper;
import cn.daimajiangxin.springboot.learning.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
private final UserMapper userMapper;
@Autowired
public UserService(UserMapper userMapper) {
this.userMapper = userMapper;
}
public List<User> getAllUsers() {
return userMapper.findAllUsers();
}
// 新增其他業務邏輯方法...
}
建立Controller
參考上一篇文章,從零開始學Spring Boot系列-整合MySQL中建立的UserController 類。
測試整合效果
執行你的Spring Boot應用程式,並透過呼叫UserService的findAllUsers方法來測試MyBatis的整合效果。你可以透過編寫單元測試或使用Postman或apipost等工具來傳送HTTP請求,訪問來http://localhost:8080/users檢視所有使用者的列表。
總結
透過以上步驟,我們成功地在Spring Boot專案中整合了MyBatis,並透過編寫Mapper介面和XML對映檔案,實現了資料庫的操作。這只是整合MyBatis的基礎示例,你可以進一步探索MyBatis的高階特性,如動態SQL、結果對映等,以滿足更復雜的業務需求。同時,結合Spring Boot的其他功能,你可以構建出功能強大且易於維護的應用程式。
我是程式碼匠心,和我一起學習更多精彩知識!!!掃描二維碼!關注我,實時獲取推送。
源文來自:https://daimajiangxin.cn