完美解决若依框架springboot3升级mybatis-plus

若依框架版本3.8.8,根目录pom.xml文件增加如下

<mybatis-plus.version>3.5.7</mybatis-plus.version>

根目录pom.xml文件增加依赖

<dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mybatis-plus.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.mybatis</groupId>
                        <artifactId>mybatis-spring</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

application.yml文件,将mybatis替换mybitis-plus

mybatis-plus:
  # 搜索指定包别名
  typeAliasesPackage: com.ruoyi.**.domain
  # 配置mapper的扫描,找到所有的mapper.xml映射文件
  mapperLocations: classpath*:mapper/**/*Mapper.xml
  # 加载全局的配置文件
  #configLocation: classpath:mybatis/mybatis-config.xml
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
  global-config:
    banner: false
      #刷新mapper 调试神器
    refresh: true
    db-config:
        #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
      id-type: auto
        #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
      field-strategy: not_empty
        #驼峰下划线转换
      db-column-underline: true
        #设置表前缀
        #table-prefix: sys_
        #数据库大写下划线转换
        #capital-mode: true
        #序列接口实现类配置
        #key-generator: com.baomidou.springboot.xxx
        #逻辑删除配置
      logic-delete-field: deleted  # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
      logic-delete-value: 1
      logic-not-delete-value: 0
        #数据库类型
      db-type: mysql

mybatisConfig文件注销

在若依框架中集成 MyBatis-Plus 可以显著提升 Spring Boot 3 项目的开发效率,尤其是在数据访问层的简化和功能扩展方面。以下是详细的集成步骤和配置方法: ### 添加依赖 首先,在项目的 `pom.xml` 文件中添加 MyBatis-Plus 的依赖。确保使用与 Spring Boot 3 兼容的版本,例如 `3.5.1` 或更高版本。 ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency> ``` 此外,若依框架通常集成了 Druid 数据源,因此也需要确保 `mybatis-plus-extension` 被引入,以便支持更多高级功能。 ### 配置 MyBatis-Plus 在 `application.yml` 中添加 MyBatis-Plus 的相关配置,包括分页插件、乐观锁插件等。 ```yaml mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper-locations: classpath*:mapper/**/*.xml ``` 若依框架通常使用 `@Configuration` 类来管理配置。可以通过创建一个 `MyBatisPlusConfig` 类来注册插件,例如乐观锁插件。 ```java @Configuration public class MyBatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); return interceptor; } } ``` 该配置类使用 `MybatisPlusInterceptor` 来注册 `OptimisticLockerInnerInterceptor` 插件,以支持乐观锁功能[^3]。 ### 使用 MyBatis-Plus 的基础功能 在若依框架中,通常会定义一个 `IService` 接口来封装数据访问逻辑。可以通过继承 `IService` 接口并使用 `ServiceImpl` 实现类来简化开发。 ```java public interface ISubCompanyService extends IService<SubCompany> { SubCompany findById(Integer id); } ``` 对应的实现类可以如下定义: ```java @Service public class SubCompanyServiceImpl extends ServiceImpl<SubCompanyMapper, SubCompany> implements ISubCompanyService { @Override public SubCompany findById(Integer id) { return this.getById(id); } } ``` 通过继承 `ServiceImpl`,可以直接使用 `getById` 等方法,无需手动编写 SQL 语句[^4]。 ### 分页查询 若依框架通常需要支持分页查询功能,MyBatis-Plus 提供了内置的分页插件支持。 ```java public interface SubCompanyMapper extends BaseMapper<SubCompany> { IPage<SubCompany> selectPage(IPage<SubCompany> page); } ``` 在服务层调用分页查询方法: ```java public IPage<SubCompany> getSubCompanyPage(int pageNum, int pageSize) { IPage<SubCompany> page = new Page<>(pageNum, pageSize); return subCompanyMapper.selectPage(page, null); } ``` ### 乐观锁处理 在数据更新时,乐观锁可以有效避免并发修改问题。实体类中需要使用 `@Version` 注解标识版本字段。 ```java public class SubCompany { private Integer id; @Version private Integer version; // 其他字段和 getter/setter 方法 } ``` 更新操作时,MyBatis-Plus 会自动处理版本号的递增和验证。 ### 总结 通过上述步骤,可以在若依框架中成功集成 MyBatis-Plus,实现数据访问层的简化和功能增强。具体包括依赖配置、插件注册、基础功能使用、分页查询以及乐观锁处理等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值