已有springboot项目,整合mybatisplus遇到的一些列问题:比如baseMapper自带的方法不好使。
出现这个问题的时候,项目关于mybatisplus的环境是
Gradle依赖:
implementation group: ‘com.baomidou’, name: ‘mybatis-plus-boot-starter’, version: ‘3.4.2’
implementation group: ‘com.baomidou’, name: ‘mybatis-plus’, version: ‘3.4.2’
implementation group: ‘com.baomidou’, name: ‘mybatis-plus-generator’, version: ‘3.3.2’
Xml相关配置:
老司机看到这个后,就会发现问题,mybatisplus要用MybatisSqlSessionFactoryBean,而不用默认的SqlSessionFactory。
所以xml要修改为:
注意class处的变化。
关于我这里为什么是用xml配置的,是项目自身的原因,比如我的项目依赖于一个sdk,sdk依赖于xml配置,
那么java代码的配置就会不生效。一定要注意这个原因,否则你傻乎乎的一个劲用java代码配置,一直不对。
Java代码如何配置,也贴一下代码:
图来源于:
https://blog.csdn.net/u011602668/article/details/113950389?spm=1001.2014.3001.5501
也可以参考这个链接,尝试来解决这个问题。
网上看到有人针对这个问题回答说:
感兴趣的自己试试吧。
到此为止,关于baseMapper中接口不可用的问题,已经解决。
如果项目运行没问题,就不同往下看了,
如果项目运行出现
java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory
这个问题对我来说,可能对你们大家也一样,是mybatisplus的依赖出现冲突。
Maven怎么检查冲突就不说了,Gradle如何查看依赖是否冲突?
点击这个按钮,
Console窗口的内容,比如
关于mybatis的,出现这种箭头的,就是冲突,
我们可以这样来解决,再gradle文件中设置
选择一个版本就可以。
到此,这个问题也就解决了。
如果你出现了其它的问题?
检查下面几个提示看你是否符合,
1,就需要看看你的mybatispus集成是否规范,
SpringbootApplication启动类中是否加入了@MapperScan(“mapper路径”),如果没加的话,就需要再每个mapper类上手动加上@Mapper注解。
2,如果你先依赖中引入了mybatis-plus-boot-starter依赖,就不要引入mybatis-spring等依赖,
这样mybatispus依赖就无效了,自然也就不好使。
如果检查后没有引入,但还是不好使,可能是你的项目依赖了别的项目,产生了间接依赖
,尝试使用gradle中的exclude关键解决这个问题。
。
关于上面的问题,mybatis-plus-extension出现冲突,一个是3.3.2,一个是3.4.2。
其实就是我gradle依赖中的
这个两个版本,如果把它俩改成同一个版本是不是就不会有冲突了呢?
很可惜,mybatis-plus-generator没有3.4.2版本,所以我就没测,累了。