在Spring Boot的應(yīng)用開發(fā)中,MyBatis是一個非常流行的持久層框架,它支持定制化SQL、存儲過程以及高級映射。在本篇文章中,我們將學(xué)習(xí)如何在Spring Boot項目中集成MyBatis,以便通過MyBatis進行數(shù)據(jù)庫操作。
添加MyBatis依賴
首先,我們需要在項目中添加MyBatis的依賴。在Spring Boot中,我們通常會使用Gradle或Maven作為構(gòu)建工具來管理項目依賴。這里,我們將以Gradle為例,展示如何添加MyBatis的依賴。
打開項目的build.gradle文件,我們需要添加MyBatis Spring Boot Starter的依賴項。這個依賴項會幫助我們更容易地將MyBatis集成到Spring Boot應(yīng)用中。
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,它包含了構(gòu)建Web應(yīng)用所需的基本依賴。
- mybatis-spring-boot-starter:MyBatis Spring Boot Starter,它提供了MyBatis和Spring Boot集成的簡化配置。
- mysql-connector-java:MySQL數(shù)據(jù)庫驅(qū)動,用于連接MySQL數(shù)據(jù)庫。
配置數(shù)據(jù)源和MyBatis
配置好依賴后,你可以通過Gradle的命令行工具來同步項目依賴,或者在IDE中自動同步。一旦依賴同步完成,你就可以開始編寫Mapper接口和XML映射文件,并使用MyBatis來操作數(shù)據(jù)庫了。
請確保你的application.properties或application.yml文件中已經(jīng)配置了正確的數(shù)據(jù)庫連接信息,例如:
# datasource 配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/你的數(shù)據(jù)庫名?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false&allowPublicKeyRetrieval=true
spring.datasource.username=你的數(shù)據(jù)庫用戶名
spring.datasource.password=你的數(shù)據(jù)庫密碼
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
創(chuàng)建實體
參考上一篇文章,從零開始學(xué)Spring Boot系列-集成MySQL中創(chuàng)建的User類。
創(chuàng)建Mapper接口和XML文件
在項目的src/main/java目錄下,創(chuàng)建mapper 的一個package ,再創(chuàng)建Mapper接口。例如,創(chuàng)建一個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/目錄下創(chuàng)建對應(yīng)的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();
}
// 添加其他業(yè)務(wù)邏輯方法...
}
創(chuàng)建Controller
參考上一篇文章,從零開始學(xué)Spring Boot系列-集成MySQL中創(chuàng)建的UserController 類。
測試集成效果
運行你的Spring Boot應(yīng)用程序,并通過調(diào)用UserService的findAllUsers方法來測試MyBatis的集成效果。你可以通過編寫單元測試或使用Postman或apipost等工具來發(fā)送HTTP請求,訪問來http://localhost:8080/users查看所有用戶的列表。
總結(jié)
通過以上步驟,我們成功地在Spring Boot項目中集成了MyBatis,并通過編寫Mapper接口和XML映射文件,實現(xiàn)了數(shù)據(jù)庫的操作。這只是集成MyBatis的基礎(chǔ)示例,你可以進一步探索MyBatis的高級特性,如動態(tài)SQL、結(jié)果映射等,以滿足更復(fù)雜的業(yè)務(wù)需求。同時,結(jié)合Spring Boot的其他功能,你可以構(gòu)建出功能強大且易于維護的應(yīng)用程序。文章來源:http://www.zghlxwxcb.cn/news/detail-838010.html
我是代碼匠心,和我一起學(xué)習(xí)更多精彩知識?。?!掃描二維碼!關(guān)注我,實時獲取推送。
源文來自:https://daimajiangxin.cn文章來源地址http://www.zghlxwxcb.cn/news/detail-838010.html
到了這里,關(guān)于從零開始學(xué)Spring Boot系列-集成mybatis的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!