在使用mybatis的时候,

错误1:Invalid bound statement (not found):

错误信息:

SEVERE: Servlet.service() for servlet [SpringMVC] in context with path [/ssm] threw exception [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.kaigejava.ssm.dao.InformationMapper.selectByExample] with root cause

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.kaigejava.ssm.dao.InformationMapper.selectByExample

mybatis错Invalidbound statement_xml文件

mybatis错Invalidbound statement_xml文件_02

根据提示:sql语句绑定失败导致的。

分析原因:

一般这个错误是mybatis相关的配置出现的问题。

查询dao相关的mapper.xml文件检查:

1:namespace的值是否和接口全类名一直:

mybatis错Invalidbound statement_自动生成_03

点击可以进入对应的class中。说明没有问题。

2:检查对应的sql语句ID是否存在

mybatis错Invalidbound statement_java_04

对应的sql的id存在的。说明也不是这个导致的。

3:查看mybatis配置文件:

mybatis错Invalidbound statement_自动生成_05

对应的mapper.xml文件存放位置错误。

所以,将对应的mapper.xml放置到对应的配置文件所配置的位置即可。

错误2:Result Maps collection already contains value for

在启动项目时候提示:Result Maps collection already contains value for com.kaigejava.ssm.dao.InformationMapper.BaseResultMap

说明:

mapper.xml文件使用工具生成的。

根据错误提示:对应的id已经使用了。

错误分析:

这些代码因为是工具自动生成的,所以也没仔细检查.一个小小的错误,导致的。

mybatis错Invalidbound statement_java_06

的值。

在对应的mapper.xml中搜索id="BaseResultMap"果然有两个。

回想,因为自己执行自动生成执行了两次。结果就重复了。

删除后,重新生成一遍。结果就OK。