【踩坑】遇到 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 报错

时间:2024-01-05 19:41:02

今天在重做 iblog 客户端时,测试接口情况,发现了

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)::iblog.server_java.dao.AuthorDao.selectForLogin

的报错。经过排查,基本定位为 AuthorMapper.xml 文件中的问题。但是检查 namespace 属性的Dao路径又没发现什么问题。

上网搜索了一阵,答案全部都是让检查路径或者文件名有没有错,可是都没发现问题。

后来回想写 Mapper 文件时,时复制粘贴 iReview 项目的,对比了它们的路径,也没发现问题,难道就无解了?

<mapper namespace="main.java.iReview.dao.UsersDao">
<mapper namespace="main.java.iblog.server_java.dao.AuthorDao">

后来,经过仔细对比,前后两个项目的不同之处在于项目路径,iReview 是在 main.java.main.java 下,而 iblog 是在 main.java 之下。

猜测 Mapper 文件 namespace 属性的路径是不用带默认的 main.java ,于是把它删了,再测试,果然没问题了。

<mapper namespace="iblog.server_java.dao.AuthorDao">

又涨知识了^_^