首页 > 代码库 > ibatis 的 "This SQL map does not contain a MappedStatement"的错误

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

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程序,它们都不需要这些写啊,到现在也搞不清楚怎么回事,知情者请告诉我一下,谢谢了!

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

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