mybatis 和mybatis-plus 同时使用时出现的问题

由于原来的项目是用mybatis开发,后续开发人员嫌太麻烦,直接加入mybatis-plus 但再启动时出现一些问题

主要就是出现

Not Found TableInfoCache 的异常 ,

网上翻寻了一下说是mybatis-plus 使用的

SqlSessionFactory   与 mybatis 使用的有所不同

 下面就是找到自己项目的mybatisConfig  配置类   改为使用第一个sqlSession

@Bean(name = "SqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        String typeAliasesPackage = this.env.getProperty("mybatis.typeAliasesPackage");
        String mapperLocations = this.env.getProperty("mybatis.mapperLocations");
        String configLocation = this.env.getProperty("mybatis.configLocation");
//        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();   // mybatis-plus
//        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();       //mybatis
        sessionFactory.setDataSource(dataSource);
        sessionFactory.setTypeAliasesPackage(typeAliasesPackage);
        sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperLocations));
        sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation));
        return sessionFactory.getObject();
    }

 配置这时可以不用修改,但注意新写的代码也要符合以前的配置扫描规则

# MyBatis
mybatis:
  # 搜索指定包别名
  typeAliasesPackage: cn.sdui.**.domain,cn.sdui.**.pojo
  # 配置mapper的扫描,找到所有的mapper.xml映射文件
  mapperLocations: classpath*:mapper/**/*.xml
  # 加载全局的配置文件
  configLocation: classpath:mybatis/mybatis-config.xml

 然后运行,又出现新的问题

 大致是说版本不兼容,有些方法找不到,这时候需要降低mybatis-plus 的版本,

 <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>3.5.2</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>2.2.0</version>

这是原有的两个版本

    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>3.1.0</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>2.2.0</version>

直接把mybatis-plus 降到3.1.0 重新启动 ,调用mybatis-plus公用方法,成功

刚开始的时候网上看了很多说是把mybatis 的依赖全部替换成mybatis -plus 但是这样做是有一定的风险的。最后使用这种轻量修改完成整合。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值