??前言
本篇博文是關(guān)于Spring Boot 整合MyBatis-Plus的,希望你能夠喜歡??
??個(gè)人主頁(yè):晨犀主頁(yè)
??個(gè)人簡(jiǎn)介:大家好,我是晨犀,希望我的文章可以幫助到大家,您的滿意是我的動(dòng)力????
??歡迎大家:這里是CSDN,我總結(jié)知識(shí)的地方,歡迎來(lái)到我的博客,感謝大家的觀看??
如果文章有什么需要改進(jìn)的地方還請(qǐng)大佬不吝賜教 先在此感謝啦??
Spring Boot 整合MyBatis-Plus
官方文檔
MyBatis-Plus 官網(wǎng)https://baomidou.com
基本介紹
- MyBatis-Plus (簡(jiǎn)稱MP)是一個(gè)MyBatis 的增強(qiáng)工具,在MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開(kāi)發(fā)、提高效率而生。
- 強(qiáng)大的CRUD 操作:內(nèi)置通用Mapper、通用Service,通過(guò)少量配置即可實(shí)現(xiàn)單表大部分CRUD 操作,更有強(qiáng)大的條件構(gòu)造器,滿足各類使用需求
整合MyBatis-Plus 實(shí)例
需求說(shuō)明/圖解
-
將Spring Boot 和MyBatis-Plus 整合
-
查詢數(shù)據(jù),如圖
代碼實(shí)現(xiàn)
- 創(chuàng)建數(shù)據(jù)庫(kù)和表
CREATE DATABASE `springboot_mybatisplus`
USE `springboot_mybatisplus`
CREATE TABLE `monster` (
`id` INT NOT NULL AUTO_INCREMENT,
`age` INT NOT NULL,
`birthday` DATE DEFAULT NULL,
`email` VARCHAR(255) DEFAULT NULL,
`gender` CHAR(1) DEFAULT NULL,
`name` VARCHAR(255) DEFAULT NULL,
`salary` DOUBLE NOT NULL,
PRIMARY KEY (`id`)
) CHARSET=utf8
SELECT * FROM `monster`
INSERT INTO monster VALUES(NULL, 20, '2000-11-11', 'xzj@sohu.com', ' 男', ' 蝎子精',15000.88);
INSERT INTO monster VALUES(NULL, 10, '2011-11-11', 'ytj@sohu.com', ' 女', ' 玉兔精',18000.88);
- 創(chuàng)建springboot_mybatisplus 項(xiàng)目
-pom.xml 引入必要的依賴
<!--引入必要的依賴-->
<dependencies>
<!--引入web starter-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--引入mysql驅(qū)動(dòng): 這里使用版本仲裁 8.0.26-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--引入配置處理器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
<!--引入lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--引入test starter-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!--引入druid依賴-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.17</version>
</dependency>
</dependencies>
-
修改pom.xml 引入MyBatis-Plus starter
<!--引入mybatis-plus starter-->
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
- 創(chuàng)建resources/application.yml 配置數(shù)據(jù)源參數(shù)
server:
port: 9090
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/springboot_mybatisplus?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username: root
password: 123456
- 創(chuàng)建配置文件com/my/mybatisplus/config/DruidDataSourceConfig.java
@Configuration
public class DruidDataSourceConfig {
@ConfigurationProperties("spring.datasource")
@Bean
public DataSource dataSource() throws SQLException {
DruidDataSource druidDataSource =
new DruidDataSource();
return druidDataSource;
}
}
- 測(cè)試是否能正確啟動(dòng)項(xiàng)目, 注意觀察mybatis-plus 是否引入成功
mybatis-plus 引入成功
- 創(chuàng)建com/my/mybatisplus/bean/Monster.java
@Data
//說(shuō)明:
//1. 如果這個(gè)類名Monster 和表名monster 一致,可以映射上,則@TableName 可以省略
//2. 如果這個(gè)類名Monster 和表名不一致,不能映射上,則@TableName 可以指定
@TableName("monster")
public class Monster {
private Integer id;
private Integer age;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date birthday;
private String email;
private String name;
private String gender;
private Double salary;
}
- 創(chuàng)建com/my/mybatisplus/mapper/MonsterMapper.java
/*
* 說(shuō)明
* 1. BaseMapper 已經(jīng)默認(rèn)提供了很多crud 方法, 可以直接用
* 2. 如果BaseMapper 提供的方法不滿足需要,可以再開(kāi)發(fā)MonsterMapper.xml
*/
public interface MonsterMapper extends BaseMapper<Monster> {
}
- 創(chuàng)建com/my/mybatisplus/service/MonsterService.java
/**
* 說(shuō)明
* 1. IService 提供了很多crud 方法, 底層調(diào)用的是BaseMapper 的方法
* 2. 如果默認(rèn)提供的方法,不能滿足需求,再開(kāi)發(fā)需要的方法即可
*/
public interface MonsterService extends IService<Monster> {
}
- 創(chuàng)建com/my/mybatisplus/service/impl/MonsterServiceImpl.java
@Service
public class MonsterServiceImpl extends ServiceImpl<MonsterMapper, Monster> implements MonsterService {
}
- 創(chuàng)建com/my/mybatisplus/controller/MonsterController.java
@Controller
public class MonsterController {
@Resource
MonsterService monsterService;
@ResponseBody
@GetMapping("/monster")
public Monster getByMonsterId(@RequestParam("id") Integer id) {
return monsterService.getById(id);
}
@ResponseBody
@GetMapping("/list")
public List<Monster> listMonster() {
return monsterService.list();
}
}
- 修改com/my/mybatisplus/Application.java , 加入對(duì)Mapper 的掃描
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
說(shuō)明:
1.如果在Mapper接口有@Mapper注解,就可以不用寫@MapperScan注解
2.直接對(duì)包進(jìn)行掃描,會(huì)簡(jiǎn)潔一點(diǎn)
啟動(dòng)項(xiàng)目,完成測(cè)試
瀏覽器輸入: http://localhost:10000/list http://localhost:10000/monster?id=1
整合MyBatis-Plus 注意事項(xiàng)和細(xì)節(jié)
@TableName 作用
說(shuō)明 :
? 如果這個(gè)類名Monster 和表名monster 一致,可以映射上,則@TableName 可以省略;
? 如果這個(gè)類名Monster 和表名不一致,不能映射上,則可以通過(guò)@TableName 指定。
MyBatis-Plus starter 到底引入了哪些依賴?
- 為了開(kāi)發(fā)方便, 可以安裝MyBatisX 插件, 參考文檔:https://baomidou.com/guide/mybatisx-idea-plugin.html
??總結(jié)
- 如果類名 和表名不一致,可以通過(guò)@TableName 指定。
- 如果在Mapper接口有@Mapper注解,就可以不用寫@MapperScan注解。
??熱門專欄推薦
Thymeleaf快速入門及其注意事項(xiàng)
Spring Initailizr–快速入門–SpringBoot的選擇
帶你了解SpringBoot支持的復(fù)雜參數(shù)–自定義對(duì)象參數(shù)-自動(dòng)封裝
Rest 優(yōu)雅的url請(qǐng)求處理風(fēng)格及注意事項(xiàng)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-672070.html
文章到這里就結(jié)束了,如果有什么疑問(wèn)的地方請(qǐng)指出,諸大佬們一起來(lái)評(píng)論區(qū)一起討論??
希望能和諸大佬們一起努力,今后我們一起觀看感謝您的閱讀??
如果幫助到您不妨3連支持一下,創(chuàng)造不易您們的支持是我的動(dòng)力??文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-672070.html
到了這里,關(guān)于Spring Boot 整合MyBatis-Plus的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!