1. 什么是 MyBatis Plus?
MyBatis Plus (简称 MP) 是一款持久层框架,说白话就是一款操作数据库的框架。它是一个 MyBatis 的增强工具,就像 iPhone手机一般都有个 plus 版本一样,它在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
MyBatis Plus 的愿景是成为 MyBatis 最好的搭档,效率翻倍。
2. MyBatis Plus 的优势
- 快速开发:MyBatis Plus 提供了一系列的便捷功能,如自动生成 SQL 语句、通用 Mapper 等,使数据库操作更加高效,能够节省开发时间。
- 更少的配置: Spring Boot 已经为我们提供了很多默认的配置,整合 MyBatis Plus 时只需少量的配置,减少了繁琐的配置步骤。
- 内置分页插件:MyBatis Plus 内置了分页插件,无需额外的代码,就可以轻松实现分页查询。
- 更好的支持: MyBatis Plus 在社区中有较广泛的使用,拥有活跃的维护者和开发者,您可以轻松找到解决方案和文档。
3. 整合
3.1 添加依赖
在父项目的 pom.xml 文件中,声明 MP 的依赖版本号:
<!-- 版本号统一管理 -->
<properties>
// 省略...
<mybatis-plus.version>3.5.2</mybatis-plus.version>
</properties>
<!-- 统一依赖管理 -->
<dependencyManagement>
<dependencies>
// 省略...
<!-- Mybatis Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
然后,在具体的业务模块的 pom.xml 文件中,引入 MP 和 MySQL 依赖:
<!-- Mybatis Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<!-- mysql 依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
3.2 配置文件
编辑 applicaiton-dev.yml 文件,添加数据库链接相关的配置,包含连接池的配置:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/weblog?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull
username: root
password: 123456
hikari:
minimum-idle: 5
maximum-pool-size: 20
auto-commit: true
idle-timeout: 30000
pool-name: Weblog-HikariCP
max-lifetime: 1800000
connection-timeout: 30000
connection-test-query: SELECT 1
数据库链接池这块,我们使用的 Spring Boot 默认的 HikariCP,它是一个高性能的连接池实现 , 同时,它号称是速度最快的连接池:
- spring.datasource.hikari.minimum-idle: Hikari连接池中最小空闲连接数。
- spring.datasource.hikari.maximum-pool-size: Hikari连接池中允许的最大连接数。
- spring.datasource.hikari.auto-commit: 连接是否自动提交事务。
- spring.datasource.hikari.idle-timeout: 连接在连接池中闲置的最长时间,超过这个时间会被释放。
- spring.datasource.hikari.pool-name: 连接池的名字。
- spring.datasource.hikari.max-lifetime: 连接在连接池中的最大存活时间,超过这个时间会被强制关闭。
- spring.datasource.hikari.connection-timeout: 获取连接的超时时间。
- spring.datasource.hikari.connection-test-query: 用于测试连接是否可用的SQL查询,这里使用的是SELECT 1,表示执行这个查询来测试连接。
然后,在 common 模块中的 config 包下,新建一个 MybatisPlusConfig 配置文件,代码如下:
package com.windblog.common.config;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@MapperScan("com.windblog.common.domain.mapper")
public class MybatisPlusConfig {
}
@MapperScan : 扫描 MP 的 mapper 接口存放位置。
3.3 映射xml
如果自动以sql不采用注解的卸载mapper的话,而是映射到resource下的xml文件,需要在项目的yml配置中新增xml的路径
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
4. 结语
至此,整合 Mabatis Plus 持久层框架就成功了,有了持久层框架,能够帮助开发人员更方便地进行数据库操作。同时,MyBatis Plus 的强大功能和 Spring Boot 的自动化配置使得整合变得非常简单,节省了开发人员的时间和精力。