在Spring Boot應(yīng)用開(kāi)發(fā)中,MyBatis-Plus是一個(gè)強(qiáng)大且易于使用的MyBatis增強(qiáng)工具,它提供了很多實(shí)用的功能,如代碼生成器、條件構(gòu)造器、分頁(yè)插件等,極大地簡(jiǎn)化了MyBatis的使用和配置。本篇文章將指導(dǎo)大家如何在Spring Boot項(xiàng)目中集成MyBatis-Plus。
一、項(xiàng)目準(zhǔn)備
首先,確保你已經(jīng)安裝了Java開(kāi)發(fā)環(huán)境(JDK)和Maven或Gradle等構(gòu)建工具。接下來(lái),創(chuàng)建一個(gè)新的Spring Boot項(xiàng)目。你可以使用Spring Initializrhttps://start.spring.io來(lái)快速生成項(xiàng)目結(jié)構(gòu),選擇你需要的依賴項(xiàng),比如Spring Web、MySQL Driver等。
二、添加MyBatis-Plus依賴
在Gradle項(xiàng)目中集成MyBatis-Plus,你需要在項(xiàng)目的build.gradle文件中添加MyBatis-Plus的依賴。以下是添加MyBatis-Plus依賴的示例:
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
runtimeOnly 'mysql:mysql-connector-java:8.0.17'
// MyBatis-Plus 依賴
implementation 'com.baomidou:mybatis-plus-spring-boot3-starter:3.5.6'
// 如果需要分頁(yè)插件,可以添加以下依賴
implementation 'com.baomidou:mybatis-plus-extension:3.5.6'
}
三、配置數(shù)據(jù)源
在application.properties或application.yml文件中,配置你的數(shù)據(jù)庫(kù)連接信息。以下是application.yml的示例:
# datasource
spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false&allowPublicKeyRetrieval=true
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# mybatis-plus
mybatis-plus.mapper-locations=classpath:mapper/*.xml
mybatis-plus.type-aliases-package=cn.daimajiangxin.springboot.learning.model
這里的your_database、your_username和your_password需要替換為你的數(shù)據(jù)庫(kù)名稱、用戶名和密碼。mapper-locations指定了MyBatis映射文件的位置,type-aliases-package指定了實(shí)體類所在的包。
四、創(chuàng)建實(shí)體類
創(chuàng)建與數(shù)據(jù)庫(kù)表對(duì)應(yīng)的實(shí)體類,并放在type-aliases-package指定的包下。
package cn.daimajiangxin.springboot.learning.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
@TableName(value ="user")
@Data
public class User implements Serializable {
/**
* 學(xué)生ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 姓名
*/
private String name;
/**
* 郵箱
*/
private String email;
/**
* 年齡
*/
private Integer age;
/**
* 備注
*/
private String remark;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
五、創(chuàng)建Mapper接口
創(chuàng)建對(duì)應(yīng)的Mapper接口,通常放在與實(shí)體類相同的包下,并繼承BaseMapper 接口。例如:
package cn.daimajiangxin.springboot.learning.mapper;
import cn.daimajiangxin.springboot.learning.model.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface UserMapper extends BaseMapper<User> {
}
六、創(chuàng)建Mapper XML文件
在resources的mapper目錄下創(chuàng)建對(duì)應(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>
七、創(chuàng)建Service 接口
在service目錄下服務(wù)類接口UserService
package cn.daimajiangxin.springboot.learning.service;
import cn.daimajiangxin.springboot.learning.model.User;
import com.baomidou.mybatisplus.extension.service.IService;
public interface UserService extends IService<User> {
}
八、創(chuàng)建Service實(shí)現(xiàn)類
在service目錄下創(chuàng)建一個(gè)impl目錄,并創(chuàng)建UserService實(shí)現(xiàn)類UserServiceImpl
package cn.daimajiangxin.springboot.learning.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.daimajiangxin.springboot.learning.model.User;
import cn.daimajiangxin.springboot.learning.service.UserService;
import cn.daimajiangxin.springboot.learning.mapper.UserMapper;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User>implements UserService{
}
九、創(chuàng)建Controller
控制層注入 UserService,并使用IService的list和save 方法。
package cn.daimajiangxin.springboot.learning.controller;
import cn.daimajiangxin.springboot.learning.model.User;
import cn.daimajiangxin.springboot.learning.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class UserController {
private final UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping("/users")
public List<User> getAllUsers() {
return userService.list();
}
@PostMapping("/user")
public String add() {
User user=new User();
user.setName("test");
user.setAge(18);
user.setEmail("test@163.com");
userService.save(user);
return "保存成功";
}
}
十、測(cè)試
運(yùn)行你的Spring Boot應(yīng)用程序,并通過(guò)調(diào)用UserService的list方法來(lái)測(cè)試MyBatis-plus的集成效果。你可以通過(guò)編寫(xiě)單元測(cè)試或使用Postman或apipost等工具來(lái)發(fā)送HTTP請(qǐng)求,訪問(wèn)來(lái)http://localhost:8080/users查看所有用戶的列表。
總結(jié)
在本篇文章中,我們?cè)敿?xì)介紹了如何在Spring Boot項(xiàng)目中集成MyBatis-Plus,并使用XML文件定義Mapper接口的實(shí)現(xiàn)。首先,我們添加了MyBatis-Plus的依賴,并配置了數(shù)據(jù)源。接著,我們創(chuàng)建了實(shí)體類,并使用了MyBatis-Plus的注解來(lái)指定實(shí)體類與數(shù)據(jù)庫(kù)表的映射關(guān)系。然后,我們創(chuàng)建了Mapper接口,并繼承了BaseMapper以使用MyBatis-Plus提供的CRUD方法。為了更靈活地控制SQL語(yǔ)句的編寫(xiě),我們還編寫(xiě)了Mapper的XML文件,并在其中定義了自定義的SQL語(yǔ)句。最后,在Service層或Controller層中,我們通過(guò)注入Mapper接口來(lái)使用這些功能。
通過(guò)集成MyBatis-Plus并使用XML實(shí)現(xiàn)Mapper,我們可以在Spring Boot項(xiàng)目中高效地進(jìn)行數(shù)據(jù)庫(kù)操作,同時(shí)保持代碼的清晰和可維護(hù)性。MyBatis-Plus的增強(qiáng)功能和XML的靈活性相結(jié)合,使得數(shù)據(jù)訪問(wèn)層的開(kāi)發(fā)變得更加簡(jiǎn)單和高效。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-844134.html
我是代碼匠心,和我一起學(xué)習(xí)更多精彩知識(shí)?。?!掃描二維碼!關(guān)注我,實(shí)時(shí)獲取推送。
源文來(lái)自:https://daimajiangxin.cn文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-844134.html
到了這里,關(guān)于從零開(kāi)始學(xué)Spring Boot系列-集成MyBatis-Plus的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!