SpringBoot 集成 MyBatis-Plus 的使用指南
·
环境准备
确保开发环境已安装 JDK 1.8+、Maven 3.0+ 或 Gradle,并创建一个 SpringBoot 项目。在 pom.xml 中添加以下依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
配置数据源
在 application.yml 或 application.properties 中配置数据库连接信息:
spring:
datasource:
url: jdbc:mysql://localhost:3306/test_db?useSSL=false
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
实体类映射
创建实体类并使用 MyBatis-Plus 注解与数据库表映射:
@Data
@TableName("user") // 指定表名
public class User {
@TableId(type = IdType.AUTO) // 主键自增
private Long id;
private String name;
private Integer age;
@TableField("email") // 字段名映射
private String email;
}
Mapper 接口
继承 BaseMapper 接口,无需编写 XML 文件即可获得基础 CRUD 方法:
public interface UserMapper extends BaseMapper<User> {
// 可自定义扩展方法
}
服务层调用
通过 Service 层调用 Mapper 方法:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
// 示例:查询所有用户
public List<User> listUsers() {
return baseMapper.selectList(null);
}
}
条件构造器
使用 QueryWrapper 或 LambdaQueryWrapper 构建复杂查询:
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("name", "Tom").gt("age", 18);
List<User> users = userMapper.selectList(wrapper);
分页查询
配置分页插件后,调用分页方法:
@Configuration
public class MyBatisPlusConfig {
@Bean
public MybatisPlusInterceptor paginationInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}
// 使用示例
Page<User> page = new Page<>(1, 10);
Page<User> result = userMapper.selectPage(page, null);
自动填充
通过 @TableField 实现字段自动填充(如创建时间、更新时间):
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
逻辑删除
配置逻辑删除字段(需在表中添加 deleted 字段):
mybatis-plus:
global-config:
db-config:
logic-delete-field: deleted
logic-delete-value: 1
logic-not-delete-value: 0
代码生成器
使用 MyBatis-Plus 的代码生成器快速生成模板代码:
FastAutoGenerator.create("jdbc:mysql://localhost:3306/test_db", "root", "123456")
.globalConfig(builder -> builder.outputDir("src/main/java"))
.packageConfig(builder -> builder.parent("com.example"))
.strategyConfig(builder -> builder.addInclude("user"))
.execute();
注意事项
- 实体类需添加
@Data注解(Lombok)或手动生成 getter/setter。 - 主键策略需根据实际需求选择(如
IdType.AUTO、IdType.UUID)。 - 复杂 SQL 仍可通过 XML 或注解方式实现。
更多推荐

所有评论(0)