TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码

SpringBoot整合MyBatisPlus完整配置教程:从入门到实战

2025-07-23
/
0 评论
/
3 阅读
/
正在检测是否收录...
07/23

Spring Boot整合MyBatis Plus完整配置教程:从入门到实战

关键词:Spring Boot整合MyBatis Plus、MyBatis Plus配置、ORM框架实战、Spring Boot数据持久化
描述:本文详细讲解Spring Boot与MyBatis Plus的整合全流程,包括环境配置、基础CRUD操作、分页插件、代码生成器等核心功能,提供可落地的企业级解决方案。


一、为什么选择MyBatis Plus?

作为MyBatis的增强工具,MyBatis Plus在保留原生特性的基础上,提供了:
- 开箱即用的CRUD操作(减少30%以上重复代码)
- 强大的条件构造器(支持Lambda表达式)
- 内置分页插件(无需手动计算分页参数)
- 代码生成器(一键生成实体类、Mapper、Service)

二、环境准备

1. 创建Spring Boot项目

推荐使用Spring Initializr(https://start.spring.io/)添加:
- Spring Web
- MySQL Driver
- Lombok(简化实体类)

2. 引入依赖

xml <!-- pom.xml关键依赖 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.1</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.16</version> </dependency>

三、核心配置详解

1. 数据源配置(application.yml)

yaml spring: datasource: url: jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC username: root password: 123456 type: com.alibaba.druid.pool.DruidDataSource druid: initial-size: 5 max-active: 20

2. MyBatis Plus配置类

java
@Configuration
@MapperScan("com.example.mapper")
public class MybatisPlusConfig {

// 分页插件(必需)
@Bean
public MybatisPlusInterceptor paginationInterceptor() {
    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
    return interceptor;
}

// 自动填充功能(如创建时间、更新时间)
@Bean
public MetaObjectHandler metaObjectHandler() {
    return new MetaObjectHandler() {
        @Override
        public void insertFill(MetaObject metaObject) {
            this.setFieldValByName("createTime", new Date(), metaObject);
        }

        @Override
        public void updateFill(MetaObject metaObject) {
            this.setFieldValByName("updateTime", new Date(), metaObject);
        }
    };
}

}

四、基础CRUD实战

1. 实体类配置

java @Data @TableName("sys_user") // 指定表名 public class User { @TableId(type = IdType.AUTO) // 主键自增 private Long id; private String username; private Integer age; @TableField(fill = FieldFill.INSERT) // 自动填充 private Date createTime; }

2. Mapper接口

java public interface UserMapper extends BaseMapper<User> { // 继承BaseMapper即获得基础CRUD方法 // 自定义SQL示例: @Select("SELECT * FROM sys_user WHERE age > #{age}") List<User> selectByAge(@Param("age") Integer age); }

3. Service层示例

java
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User>
implements UserService {

// 条件构造器查询
public List<User> queryUsers(String keyword) {
    return lambdaQuery()
        .like(StringUtils.isNotBlank(keyword), User::getUsername, keyword)
        .orderByDesc(User::getCreateTime)
        .list();
}

}

五、高级功能扩展

1. 代码生成器(强烈推荐)

java public class CodeGenerator { public static void main(String[] args) { AutoGenerator generator = new AutoGenerator(); generator.setGlobalConfig(buildGlobalConfig()); generator.setDataSource(buildDataSourceConfig()); generator.setPackageInfo(buildPackageConfig()); // 详细配置参考官方文档... generator.execute(); } }

2. 多数据源配置

使用@DS注解轻松切换数据源:java
@Service
@DS("slave") // 默认使用从库
public class UserServiceImpl {

@DS("master") // 写操作切到主库
public void addUser(User user) {
    save(user);
}

}

六、常见问题排查

  1. SQL不生效:检查是否漏加@MapperScan注解
  2. 分页失效:确认已配置分页插件
  3. 字段值为null:检查@TableFieldexist属性
  4. NPE异常:实体类建议用包装类型(如Integer代替int)


最佳实践建议
1. 生产环境务必配置Druid监控页面
2. 复杂查询建议使用XML方式维护SQL
3. 定期检查@TableField注解与数据库字段的映射关系

通过以上配置,您已经掌握了Spring Boot与MyBatis Plus的整合核心要点。实际开发中可根据项目需求灵活组合各项功能,这将显著提升持久层开发效率。完整示例代码可访问GitHub仓库获取(示例链接)。

朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/33610/(转载时请注明本文出处及文章链接)

评论 (0)