其他原因可以在别的文章中找到,我只针对我出现这种情况的原因做一个记录。
在maven项目中,resources中的mapper.xml文件所在的包,创建时需要使用/符号写路径名com/at/mybatis/mapper。创建成功后包名会显示为com.at.mybatis.mapper。
如果直接使用.符号来写包名,会找不到mapper文件,出现org.apache.ibatis.binding.BindingException: Invalid bound statement 异常。
错误方式:
导致测试后出现以下问题:
查看target发现,mapper接口和mapper.xml文件不在同一个包里。
当使用package注册mapper文件时,由于mapper接口文件与mapper映射文件不在同一个包里,所以绑定失败。
正确方式:
使用/符号写包名,表示路径。
测试成功
查看target,发现mapper接口文件与mapper映射文件在同一个包里,所以绑定成功。
以上是我总结的一个小问题,希望能帮到您。