ibatis 的 "This SQL map does not contain a MappedStatement"的错误

本文解决了在使用IBatis框架时遇到的命名空间问题。通过调整调用方式,在方法名前加上命名空间,成功避免了异常。此外,还介绍了如何在配置文件中设置useStatementNamespaces参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

This SQL map does not contain a MappedStatement named List

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: IBatisNet.DataMapper.Exceptions.DataMapperException: This SQL map does not contain a MappedStatement named Adminf.List

被这个错误搞了几天,反复检查配置文件和xml文件,就是没检查出错误来,后来注意到sql的配置文件有个名字空间的,<sqlMap namespace="Admin" xmlns="http://ibatis.apache.org/mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >

例如我这里是Admin,于是应用的时候我把这句:return Mapper().QueryForList("List", null);改为了return Mapper().QueryForList("Admin.List", null);  居然可以了,没错误了,可以看一些demo程序,它们都不需要这些写啊,到现在也搞不清楚怎么回事,知情者请告诉我一下,谢谢了!

(2007-3-6)现在弄明白了,原来在sqlmap.config文件里面,我设置了useStatementNamespaces =”true”,默认也是true的,就是说使用了Satement命名空间,所以应用的时候必须加上命名空间,这样也好,因为每个表都有select,update等操作,这样好区分,而很多demo例子都是只操作一个表,没有特别指出这样的情况,所以才造成自己这样的错误

转载于:https://www.cnblogs.com/joelbh/archive/2007/03/01/660811.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值