org.apache.ibatis.binding.BindingException:Invalidboundstatement(notfound): zzu.qg.mybatis.mapper.UserMapper.findUserByInfo
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:178)
at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:38)
......
Caused by: org.apache.ibatis.builder.IncompleteElementException: Could not find SQL statement to include with refid 'zzu.qg.mybatis.mapper.UserMapper.query_user2'
at org.apache.ibatis.builder.xml.XMLIncludeTransformer.findSqlFragment(XMLIncludeTransformer.java:62)
at org.apache.ibatis.builder.xml.XMLIncludeTransformer.applyIncludes(XMLIncludeTransformer.java:37)
......
Caused by: java.lang.IllegalArgumentException: XML fragments parsed from previous mappers does not contain value for zzu.qg.mybatis.mapper.UserMapper.query_user2
at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:768)
......
不知道看caused by,在全局配置文件找了半天没有发现错误,【cry】【cry】【cry】
扫了一眼caused by,出错原因是找不到 refid='zzu.qg.mybatis.mapper.UserMapper.query_user2',这肯定是映射文件出错。
然后refid 那肯定是sql语句段出错,, 结果就发现 sql的id中多写了一个s
<sql id="squery_user2">
<if test="ids!=null">
<!--
<foreach collection="ids" item="userId" separator="or">
id=#{userId}
</foreach>
-->
<foreach collection="ids" item="userId" open="id in(" close=")" separator=",">
#{userId}
</foreach>
</if>
</sql>
经验: mybatis,先加载全局配置文件,再加载映射文件(都加载通过,才能用mybatis执行对数据库的操作),然后运行Test程序。。。