mybatis项目兼容mybatis-plus问题
作者:qq_36443319
这篇文章主要介绍了mybatis项目兼容mybatis-plus问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
1、添加mybatis-plus依赖
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>3.5.1</version> </dependency>
2、将环境配置yml里的mybatis配置名称
修改成mybatis-plus:
mybatis-plus: # 搜索指定包别名 typeAliasesPackage: com.cartreasure.**.domain # 配置mapper的扫描,找到所有的mapper.xml映射文件 mapperLocations: classpath*:mapper/**/*Mapper.xml # 加载全局的配置文件 configLocation: classpath:mybatis/mybatis-config.xml configuration: map-underscore-to-camel-case: true
3、修改MyBatisConfig.java类
里的sqlSessionFactory方法中获取的属性参数由mybatis改成mybatis-plus
并在结尾添加mybatis-plus的全局配置
@Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { String typeAliasesPackage = env.getProperty("mybatis-plus.typeAliasesPackage"); String mapperLocations = env.getProperty("mybatis-plus.mapperLocations"); String configLocation = env.getProperty("mybatis-plus.configLocation"); typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage); VFS.addImplClass(SpringBootVFS.class); final MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource); sessionFactory.setTypeAliasesPackage(typeAliasesPackage); sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ","))); sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation)); //获取mybatis-plus全局配置 GlobalConfig globalConfig = GlobalConfigUtils.defaults(); globalConfig.setMetaObjectHandler(new MyMetaObjectHandler()); GlobalConfig.DbConfig dbConfig = new GlobalConfig.DbConfig(); dbConfig.setLogicDeleteField("delFlag"); dbConfig.setLogicDeleteValue("2"); globalConfig.setDbConfig(dbConfig); sessionFactory.setGlobalConfig(globalConfig); MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); sessionFactory.setPlugins(interceptor); return sessionFactory.getObject(); } import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.cartreasure.common.utils.SecurityUtils; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; /** * mybatis-plus自动填充 */ @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { this.strictInsertFill(metaObject,"createBy",String.class, SecurityUtils.getLoginUser().getUsername()); } @Override public void updateFill(MetaObject metaObject) { this.strictUpdateFill(metaObject,"updateBy",String.class,SecurityUtils.getLoginUser().getUsername()); } }
4、自己添加mybatis-plus的其他配置
不合数据库匹配
5、上面配置后
原来的mybatis也可以照常使用xml。
最后记得开启自动扫描 自己的目录
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。