org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.qiang.dao.UserMapper.xxxx 记录下这个折磨了我两天的问题
比较着急直接看黄字部分
我的问题是我的项目中有很多mapper文件,开始对新添加的cartitem(需要连接外表flower做展示)进行增删改都没有问题,昨天突然在刚启动index.jsp就出错跳转到了error.jsp页面。
index用的是对usermapper的操作,照理讲这个我最近一直都没动过应该没啥问题啊,所以我就又运行了下后台对admin操作的页面发现也不行,由此我就认为是配置路径的文件出问题了,几经试验发现我的路径是错的,又陷入了自闭
后来我又在test包下建了文件来测试usermapper持久层代码有无问题
InputStream in= Resources.getResourceAsStream("sqlconfig.xml");
SqlSessionFactory factory= new SqlSessionFactoryBuilder().build(in);
SqlSession session= factory.openSession();
UserMapper userMapper=session.getMapper(UserMapper.class);
User users=userMapper.selectByPrimaryKey(2);
// for (User user : users) {
System.out.println(users);
// }
session.close();
in.close();
发现还是报标题错,后来发现是我把cartitem的扫包注掉后就可以正常运行了
<mapper resource="com/qiang/mapping/CartItemMapper.xml"/>
再一检查,原来是我的select语句有问题
<select id="findOne" parameterType="int" resultMap="BaseResultMap">
select * from cartitem where <include refid="con"/>
</select>
我的select是涉及一对一的,所以要把cartitem对应的flower也要查出来也即<select id="findOne" parameterType="int" resultMap="BaseResultMap"> select cartitem.uid,cartitem.pid as fpid,cartitem.count,flower.* from cartitem natural join flower where <include refid="con"/> </select>
被自己蠢哭了orz