一、引言
Mybatis-Plus是一個MyBatis的增強工具,在MyBatis的基礎上只做增強不做改變,為簡化開發、提高效率
而生。它已經被大規模地應用在實際專案中,極大地提高了開發效率。
Mybatis-Plus主要有以下特點:
- 無侵入(不會對現有工程造成影響)
- 強大的CURD操作(內建通用Mapper、通用Service來實現單表的大部分CURD操作)
- 內建多種外掛(分頁外掛、效能分析外掛、全域性攔截外掛)
二、快速整合
這裡我使用的Spring Boot版本:2.5.14
2.1 引入依賴
在pom檔案中引入mybatis-plus-boot-starter依賴,這裡使用版本3.5.1
,如下
<!-- springboot整合mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!-- mysql驅動 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
2.2 配置Mybatis-Plus及資料來源
下面是mybatis-plus的部分配置項,具體配置可參考官網https://baomidou.com/pages/56...
server:
port: 8081
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8
mybatis-plus:
# 如果是放在src/main/java目錄下 classpath:/com/yourpackage/*/mapper/*Mapper.xml
# 如果是放在resource目錄 classpath:/mapper/*Mapper.xml
mapper-locations: classpath:/mapper/**/*.xml
#實體掃描,多個package用逗號或者分號分隔
typeAliasesPackage: com.kamier.springboot.mybatisplus.domain.*
configuration:
#開啟 Mybatis 二級快取,預設為 true
cache-enabled: false
#配置JdbcTypeForNull, oracle資料庫必須配置
jdbc-type-for-null: 'null'
global-config:
db-config:
# AUTO:資料庫自增 INPUT:自行設定 ASSIGN_ID:雪花演算法id ASSIGN_UUID:UUID
id-type: AUTO
# 邏輯刪除配置(下面3個配置)
logic-delete-field: del_flag
logic-delete-value: 1
logic-not-delete-value: 0
2.3 建立資料庫實體類、Service介面及其實現類、Mapper介面、xml檔案
這裡官方推薦使用MybatisX外掛來自動生成這些檔案,在idea中搜尋MybatisX外掛安裝即可(注意:如果專案不需要自定義編寫複雜的sql語句,可以不需要生成Mapper介面和xml檔案
)
安裝之後,右側欄Database連線資料庫後,可選中多張表,右鍵點選MybatisX-Generator,配置選項可參考下圖
點選Finish即可生成檔案,下圖紅框中的就是自動生成的檔案
可以來看下生成的類是什麼樣的
- User.java(
@TableName指定表名,@TableId指定主鍵,@TableField指定欄位名
) - UserMapper.java(
繼承BaseMapper<實體類>
) - UserService.java(
繼承IService<實體類>
) - UserServiceImpl.java(
繼承ServiceImpl<Mapper介面,實體類>
) - UserMapper.xml(
namespace為Mapper介面全限定名
)
2.4 掃描Mapper
在啟動類上使用@MapperScan來掃描Mapper,如下圖
2.5 測試驗證
編寫一個簡單的Controller,如下
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("list")
public R list() {
return R.ok(userService.list());
}
}
瀏覽器輸入http://localhost:8081/user/list,獲取使用者列表
三、結語
Spring Boot快速整合Mybatis-Plus到這裡就結束了,Mybatis-Plus還有許多有用的功能,包括多資料來源、內建外掛、條件構造器等等,這裡不一一介紹了,有興趣的同學可以自行去官網查閱。