Ruoyi项目MyBatis升级MyBatis-Plus指南
ruoyi 项目 mybatis 升级到 mybatis-plus
-
- 1、ruoyi-common\pom.xml 模块添加整合依赖
- 2、ruoyi-admin 文件 application.yml,修改 mybatis 配置为 mybatis-plus
- 3、添加 Mybatis Plus 配置 MybatisPlusConfig.java
- 4、升级后需要修改的地方
-
- 4.1 service 接口修改
- 4.2 service 实现修改
- 4.3 mapper 修改
1、ruoyi-common\pom.xml 模块添加整合依赖
<!-- mybatis-plus 增强CRUD -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version>
</dependency>
2、ruoyi-admin 文件 application.yml,修改 mybatis 配置为 mybatis-plus
把之前的 mybatis 的相关配置给删除掉,使用这个配置代替
# MyBatis Plus配置
mybatis-plus:# 搜索指定包别名typeAliasesPackage: com.ruoyi.**.domain# 配置mapper的扫描,找到所有的mapper.xml映射文件mapperLocations: classpath*:mapper/**/*Mapper.xml# 加载全局的配置文件configLocation: classpath:mybatis/mybatis-config.xml
3、添加 Mybatis Plus 配置 MybatisPlusConfig.java
原来的 MyBatisConfig.java 需要删除掉,这里是 ruoyi 的包名,如果项目包名修改了,请修改成自己对应的包名,到这里基本上就升级成功了
package com.ruoyi.framework.config;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;/*** Mybatis Plus 配置* * @author ruoyi*/
@EnableTransactionManagement(proxyTargetClass = true)
@Configuration
public class MybatisPlusConfig
{@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();// 分页插件interceptor.addInnerInterceptor(paginationInnerInterceptor());// 乐观锁插件interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor());// 阻断插件interceptor.addInnerInterceptor(blockAttackInnerInterceptor());return interceptor;}/*** 分页插件,自动识别数据库类型 https://baomidou.com/guide/interceptor-pagination.html*/public PaginationInnerInterceptor paginationInnerInterceptor(){PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();// 设置数据库类型为mysqlpaginationInnerInterceptor.setDbType(DbType.MYSQL);// 设置最大单页限制数量,默认 500 条,-1 不受限制paginationInnerInterceptor.setMaxLimit(-1L);return paginationInnerInterceptor;}/*** 乐观锁插件 https://baomidou.com/guide/interceptor-optimistic-locker.html*/public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor(){return new OptimisticLockerInnerInterceptor();}/*** 如果是对全表的删除或更新操作,就会终止该操作 https://baomidou.com/guide/interceptor-block-attack.html*/public BlockAttackInnerInterceptor blockAttackInnerInterceptor(){return new BlockAttackInnerInterceptor();}
}
4、升级后需要修改的地方
之前的代码不需要动,如果想使用 mybatis-plus 的话,可能和之前调用有些不一样,这里做下提示
4.1 service 接口修改
这里继承了 IService 接口,并且把对应的实体传参进来了
public interface IPreplanService {
修改成
public interface IPreplanService extends IService<BizPreplan> {
4.2 service 实现修改
这里多了一个继承 ServiceImpl<BizPreplanMapper, BizPreplan>,把 mapper 层给拉进来了,这里 idea 会飘红,不要怕,把 mapper 层也改下就好了
public class PreplanServiceImpl implements IPreplanService {
修改成
public class PreplanServiceImpl extends ServiceImpl<BizPreplanMapper, BizPreplan> implements IPreplanService {
4.3 mapper 修改
这里也是多了个继承,对应的 xml sql 语句不变
public interface BizPreplanMapper {
修改成
public interface BizPreplanMapper extends BaseMapper<BizPreplan>{