快捷搜索: 王者荣耀 脱发

java-关于mybatis-plus的依赖冲突问题以及其他的坑

关于mybatis-plus的依赖冲突问题

查找mybatis-plus的依赖的时候,可以发现有mybatis-plus依赖和mybatis-plus-boot-starter两种依赖,因为我使用的是springboot工程,所以选了mybatis-plus-boot-starter的依赖。在测试的时候因为想测试mybatis,所以添加了mybatis的依赖。
实际上,在mybatis-plus的官网也有说明,尽量不要添加mybatis的依赖,但是实际上可以添加,答案是可以添加,但是,,,,
下面说说问题, 映射文件的配置如下:
mybatis:
  mapper-locations: classpath:/mapper/*.xml
但是在使用的时候报异常了 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.fanjun.mybatisplus.mapper.TNameMapper.selectByExample 出现这个异常后我反复检查了很多地方,如果将mapper的映射 文件调整到了java路径下,添加build配置加载java的xml文件,mybatis正常使用,那么问题很明显,映射文件的配置信息失效了。为什么会出现失效呢? 查看mybatis-plus-boot-starter包括了springboot配置的依赖,所以才出现mybatis无法找到接口方法的映射。
解决方法 很简单,使用mybatis-plus依赖就不会影响mybatis的使用了。

其他坑

tomcat启动无法加载文件

场景

mybatis-plus依赖导致The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path 如果去掉依赖,只有MySQL,重新了DataSource的bean并不会报错,但是引入依赖就立即报错 网上查找了资料,有些说是因为tomcat的问题,要下载文件到指定的文件,但是这个很明显不是,因为springboot是自带tomcat的,另外有人是发现依赖出现了冲突,经过检查,没有发现mybatis-plus的依赖冲突。最后看有一个网友说自己是因为错误的代码导致的,所以我也是集中在了代码检查上,经过一番测试,没有发现代码的问题,最后是想到还是从ssl上入手,想到了是配置上有这个。

jdbc:mysql://127.0.0.1:3306/decision?useSSL=false&characterEncoding=UTF8&autoReconnect=true&zeroDateTimeBehavior=convertToNull;verifyServerCertificate=false

修改为 jdbc:mysql://127.0.0.1:3306/decision?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC

其实这个ssl的报错也是之前启动报错,然后加上了ssl的配置。

经验分享 程序员 微信小程序 职场和发展