前两天想使用ibatis.net做一个项目,其实本来不必这么复杂,因为项目时间很短,可就是不能逃过我的好奇心,偏就边学边用你了。下载了DataMapper 1.6.1 ,DataAccess 1.9.1 (下载地址http://ibatis.apache.org/dotnetdownloads.cgi),感觉这个框架确实很好很强大。
一上手配置ibatis.net就傻了,足足花费了一天配置环境,直汗,在次把这次配置ibatis.net我遇到的问题和注意事项写下来,也好避免有朋友犯类似雷人的错误.
1.配置iBatis.net之前,一定要在官方网站看一下ibatis.net的两个文档
DataMapper 1.6.1文档:http://ibatis.apache.org/docs/dotnet/datamapper/index.html
DataAccess 1.9.1文档:http://ibatis.apache.org/docs/dotnet/dataaccess/index.html
里面基本上有很多关键的问题都说的很清楚。
2.如果你下载了NPetShop或NPetShop2代码,或者参考一些朋友先前配置iBatis.net的文件,注意这些项目或者文章使用的配置文件很可能已经陈旧,不适用于ibatis.net 1.3以上版本了。一定按照官方的文档中的配置iBatis.net方式配置。切记不可运行的一切的根源可能不在于你的代码,而在于配置文件没有配置好。尤其要注意每个配置文件的头部信息,特别是xmlns和xmlns:xsi,切记对照官方文档检查清楚。
3.一定要正确的引用Castle.DynamicProxy类库,这个是关键的关键,在官方文档中有详细的描述。
4.当碰到这个出错提示ibatis.net This SQL map does not contain a MappedStatement named往往是没有加载SqlMap.config所导致,最简单的验证方法是将SqlMap.config中<sqlMaps><sqlMap url="E:\Projet\NPetshop\Source\NPetshop.Web\Maps\Category.xml"/></sqlMaps>url的配置改成一个不存在的.xml文件,这时启动项目后肯定报错找不到文件。
5.如果报System.NullReferenceException: 未将对象引用设置到对象的实例的错误,即:
行 35: DomDaoManagerBuilder builder = new DomDaoManagerBuilder();
行 36: builder.ConfigureAndWatch("dao.config", handler);
一般都是没有正确的引用Castle.DynamicProxy类库。
以上为配置iBatis.net常见的问题,各位新手一定要注意啊。
【编辑推荐】