引入的mybatis-plus-boot-starter已经集成了MyBatis包下
一、如果单独升级所用的mybatis包
需要首先将其集成的mybatisb包依赖排除:exclude,然后引入单独的较高版本的MyBatis包依赖
二、mybatis 更换为 mybatis-plus
1、删除原有依赖
<!--Mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
2、添加mybatis-plus的依赖
<!-- mybatis plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.2</version>
</dependency>
3、添加yml配置 基于springboot || springcloud
#mybatis-plus配置控制台打印完整带参数SQL语句 mybatis-plus: mapperLocations: classpath:com/idc/mapper/**/*.xml type-aliases-package: com.idc.entity configuration: map-underscore-to-camel-case: true call-setters-on-nulls: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
三、集成mybatis 转为集成 mybatis-plus
1、maven导入
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
2、配置yml
#mybatis-plus
mybatis-plus:
mapperPackage: com.xn.mapper
typeAliasesPackage: com.xn.mapper
mapperLocations: classpath:mapper/*.xml
global-config:
db-config:
id-type: none
configuration:
# 字段下划线转驼峰
map-underscore-to-camel-case: false
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
3、mybatis-plus配置类
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* mybatis-plus配置类
*/
@EnableTransactionManagement(proxyTargetClass = true)
@Configuration
@MapperScan("${mybatis-plus.mapperPackage}")
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 分页插件
interceptor.addInnerInterceptor(paginationInnerInterceptor());
// 乐观锁插件
interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor());
return interceptor;
}
/**
* 分页插件,自动识别数据库类型
*/
public PaginationInnerInterceptor paginationInnerInterceptor() {
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
// 设置数据库类型为mysql
paginationInnerInterceptor.setDbType(DbType.MYSQL);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
paginationInnerInterceptor.setMaxLimit(-1L);
return paginationInnerInterceptor;
}
/**
* 乐观锁插件
*/
public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() {
return new OptimisticLockerInnerInterceptor();
}
/**
* 元对象字段填充控制器
*/
@Bean
public MetaObjectHandler metaObjectHandler() {
return new CreateAndUpdateMetaObjectHandler();
}
/**
* sql注入器配置
*/
@Bean
public MybatisPlusSqlInjector easySqlInjector () {
return new MybatisPlusSqlInjector();
}
}
四、
假如 当前模块的依赖,引用的依赖有Mybatis-plus的依赖,那么本module自动继承api-common的依赖,也会使用Mybatis-plus。
<!--引入了api-common,自动引入了mybatis-plus-->
<dependency>
<groupId>com.czf.common</groupId>
<artifactId>api-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
如果你使用了Mybatis-plus,那么你可以去掉Mybatis的依赖,将xml的寻址改为Mybatis-plus的方式。这样,你的项目模块中就既能使用Mybatis,也能使用Mybatis-plus。
只保留:
mybatis-plus:
mapper-locations: classpath:mappers/*xml
type-aliases-package: com.czf.common.entities