Mybatis-plus异常解决之--org.apache.ibatis.binding.BindingException

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis-plus异常解决之--org.apache.ibatis.binding.BindingException相关的知识,希望对你有一定的参考价值。

参考技术A 使用Mybatis-plus时出现了org.apache.ibatis.binding.BindingException: Invalid bound statement (not found),这种原因:一般就是mapper没有找到mapper.xml中的方法,mybatis-plus去找方法是根据mapper所在的包去找mapper.xml,然后再根据mapper中方法名去找mapper.xml中对应的id的方法。有以下两种解决办法供大家参考:

方法一:

@MapperScan(basePackages ="com.test.mapper") 没有写此注解或者application.yml中没有配置mybatis.mapper-locations:classpath:com/test/mapper/*Mapper.xml。 这两处只要有一个地方配置就行了。

方法二:

查看编译的mapper目录和mapper.xml目录是否一样,目录一样才能找到mapper和mapper.xml对应的方法。这里注意一下:可能包名都是一样,但还是报这个问题,我就遇到过这种,这种就看是不是mapper.xml所在的文件夹是com.test.mapper而不是com/test/mapper这种结构,这里需要注意一下。

记录mybatis-plus多数据源批量操作时,数据源切换失效之谜

参考技术A 首先在同一方法中执行两个不同数据源的dml语句,然后发现本应该插入clickhouse的数据跑到的mysql中
@DS定义在Mapper层,然后我尝试把saveBatch换成save单条插入,又可以了。于是发现原因了,
批量操作并没有获取Mapper层。

解决方案:
将@DS定义到Service层生效

以上是关于Mybatis-plus异常解决之--org.apache.ibatis.binding.BindingException的主要内容,如果未能解决你的问题,请参考以下文章

mybatis-plus解决 sqlserver批量插入list报错

解决kylin报错 ClassCastException org.apache.hadoop.hive.ql.exec.ConditionalTask cannot be cast to org.ap

记录mybatis-plus多数据源批量操作时,数据源切换失效之谜

MyBatis-Plus之面向Mapper编程

MyBatis-Plus之面向Mapper编程

Mybatis插件之Mybatis-Plus的CRUD方法