MyBatis-Plus
MyBatis-Plus 是 MyBatis 的增强工具,可以简化开发过程,提供 CRUD 操作和其他常用功能的实现。
MyBatis-Plus 极大地简化了 MyBatis 的使用,提供了丰富的功能和便利的操作。
引入依赖
在 pom.xml
中添加 MyBatis-Plus 的依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
配置 MyBatis-Plus
在 application.yml
或 application.properties
中进行配置:
mybatis-plus:
global-config:
db-config:
id-type: auto # 主键策略
configuration:
map-underscore-to-camel-case: true # 下划线转驼峰
实体类
创建实体类时,使用 @TableName
注解指定表名,使用 @TableId
注解指定主键。
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@TableName("user")
public class User {
@TableId
private Long id;
private String name;
private Integer age;
// getters and setters
}
Mapper 接口
创建 Mapper 接口,继承 BaseMapper<T>
。
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface UserMapper extends BaseMapper<User> {
}
Service 层
创建 Service 层,使用 @Service
注解,并注入 Mapper。
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class UserService extends ServiceImpl<UserMapper, User> {
// 自定义方法
}
常用操作
对于 CRUD 操作,查询使用 getById
和 list
方法,插入使用 save
方法,更新使用 updateById
,删除使用 removeById
。
条件构造器
使用 QueryWrapper
和 UpdateWrapper
进行条件查询和更新。
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("age", 18);
List<User> users = userService.list(queryWrapper);
分页查询
使用 Page<T>
和 PageHelper
进行分页。
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
Page<User> page = new Page<>(1, 10); // 第1页,每页10条
Page<User> userPage = userService.page(page);
代码生成器
MyBatis-Plus 提供代码生成器,可以快速生成实体类、Mapper、Service 等。
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
AutoGenerator generator = new AutoGenerator();
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir("D://code");
globalConfig.setAuthor("author");
generator.setGlobalConfig(globalConfig);
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/test");
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("password");
generator.setDataSource(dataSourceConfig);
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example");
generator.setPackageInfo(packageConfig);
generator.execute();
性能分析
MyBatis-Plus 支持性能分析,添加配置可以在控制台输出 SQL 语句和执行时间。
mybatis-plus:
configuration:
performance-interceptor:
max-time: 1000 # 超过 1000ms 记录
逻辑删除
使用 @TableLogic
注解实现逻辑删除。
import com.baomidou.mybatisplus.annotation.TableLogic;
public class User {
@TableId
private Long id;
@TableLogic
private Integer deleted; // 逻辑删除标志
}
© 著作权归作者所有
本文由 趣代码Blog 创作,采用 知识共享署名4.0 国际许可协议进行许可,本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。