iBatis异常

  今天用iBatis时,总是弹出异常:

     om.ibatis.sqlmap.client.SqlMapException: There is no statement named User.findById in this SqlMap.
       at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.getMappedStatement(SqlMapExecutorDelegate.java:293)
      at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:557)
      at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:541)
      at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
      at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:83)
      at com.leec.demo_iBatis.model.DAO.UserDAO.findById(UserDAO.java:65)
      at com.leec.demo_iBatis.model.DAO.TestIbatis.main(TestIbatis.java:23)

  检查了好久,终于把问题给解决了。网上有很多关于这个异常的解决办法,但是都不够全面,而且偏偏没有我所出现的情况,所以费了好长时间。不过,总算,弄懂了。
    下面就列举一下可能会出现这个异常的原因吧:

  1.在具体数据表的映射文件中,必须要定义namespace

  2.TPhonesale.xml中  parameterClass="java.lang.String"或者"String"

      resultClass="com.hanpeng.base.model.TPhonesale"

    注意:parameterClass是要传的参数;resultClass是返回值类型。这两个值不对触发'无效的对象类型       异常'

  3.sqlMapConfig.xml中一定要加入自己编写的数据表的映射文件.xml文件引用,否则ibatIS无法找到

    <sqlMap resource="com.leec.demo_iBatis.model.POJO.User"/>
  4.在dao层调用sql语句时,要用“别名.id名”,如查询我们可以使用queryForObject("namespace.id     名",object/parameterObject);

 

我的问题就是第四种情况造成的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

shulan09

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值