关于org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)的问题如何解决

近期在开发中遇到:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)的问题,这个问题的根源其实是在mapper配置文件与dao接口做映射绑定时候出现的问题,它所指的意识就是,接口与响应的xml找不到,或者是匹配不到,一般出现这个问题,只需要按照以下步骤去检查执行就可以解决:

1.mapper.xml的namespace是否是对应接口类的全名(包括包名和类名):这个是必须要保证相同,需要进行检查,而且全类名最好通过复制,通过Copy Reference来赋值路径名。

<mapper namespace="com.Jacklin.mapper.ProductCategoryMapper">

2. mapper接口类和mapper.xml是否在同一个包下,文件名称是否一致(仅后缀不同):其实,这个并不需要在同一个包下面,通常mapper.xml文件是存放在src/main/resources目录下,而mapper接口类是在src/main/java目录下面;名称是否相同也不重要,我的命名分贝为ProductCategoryDao.java和ProductCategoryMapper.xml,实际也可以运行成功 。

3. mapper接口类的方法名是否与mapper.xml中sql标签的id相同:这个也需要进行检查,必须保证一致 。

4. mapper.xml文件中用resultMap,而不用resultType(当sql操作结果是List或其他复杂结果集时):我经过实践检验,我的查询结果是一个Integer的List集合,用resultMap反而报错,异常信息如下:

5. 还有网上说配置路径:classpath:mapper/*.xml 改为 classpath*:mapper/*.xml,这个修改是不起作用的,同样报错。

6. 如果以上的的修改你都改正过来了还是报错的话,我建议你去仔细看看配置文件具体的字母有没有写错,我就是犯了很低级的错误,mybatis配置字母都能写错:

关于org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)的问题如何解决

修改成mybatis,真想拍醒自己...以上是我对设个问题的解决看法,希望对你们有帮助!!

关于org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)的问题如何解决