iBATIS.net开发的第一个web实例
这是我用iBATIS.net开发的第一个web实例,参考网上资料自己改进实现的。其实,除了配置和写sql之外,调用iBATIS.net对于开发人员是非常省事的。下面我会从配置和使用过程中遇到的问题讲解我的使用心得。
1、如何使用iBATIS.net
(1)、新建一个解决方案叫IBatisNetDemo,里面包含两个工程,一个是IBatisWeb,你可以把它理解为三层中的表现层;还有一个工程叫IBatisNetDemo,它主要是引用iBatis.net的相关类库实现业务逻辑的,所以你也可以把它当做业务逻辑层来对待。至于数据层在哪里?读者可能已经想到,iBatis.net已经帮我们封装好了数据处理底层的东东,所以iBATIS.net的几个相关类库我们就完全可以理解为数据层。这样,一个经典三层架构就搭建好了。
(2)、IBatisNetDemo工程下,我们引用了IBatisNet.Common和IBatisNet.DataMapper两个类库(关于公共类库,放在一个公共文件夹Sharelibs下,文章最下面我会给出Demo下载链接),接着按照一般步骤写配置文件和实现代码(我会在“注意点”里详细讲解这个过程)。
(3)IBatisWeb工程是一个web项目,它引入了IBatisNetDemo工程。在web.config文件中,我们配置了日志管理相关的东东,所以还需要引入其他类库(可以查看web工程下bin文件夹下的文件)。其中log.txt文件你可以查看你自己机器上iBatis.net工作情况,对于维护和调试是有参考意义的。在页面(Default.aspx)中,你可以直接调用业务逻辑中的增删改查等操作。
下面是第一次加载网页的运行结果:

2、业务逻辑层的一些注意点
IBatisNetDemo工程是我们三层里的业务逻辑层,这里我们在微软的测试数据库Northwind中新建一个表Person来做一个业务逻辑测试。在引用了IBatisNet.Common和IBatisNet.DataMapper两个类库后,我们按部就班地要写配置和业务实现代码:
(1)、新建表Person
工程中添加Script文件夹,Person.sql如下:
Code(2)、新添Domain文件夹,添加一个实体类Person.cs(读者可参考demo);
(3)定义实体对应的xml文件:Person.xml(新添Map文件夹,在Map下添加SqlClient文件夹);
(4)可用的实体业务操作
新添Service文件夹,建BaseService.cs和PersonService.cs文件。BaseService初始化一个IBatis.Net下的SqlMapper对象;PersonService继承自BaseService,用SqlMapper对象实例实现增删改查等业务。
(5)三个.config文件说明
a、providers.config 这个直接拷贝到根目录,该文件定义各种数据库的驱动,包括SqlServer, Oracle, MySQL, PostgreSQL, DB2 and OLEDB, ODBC 等;
b、database.config
Code毫无疑问,是数据库相关配置文件,笔者的数据库还是sql2005Express版,读者可根据自己数据库的实际情况修改。
c、sqlmap.config
Code这三个.config文件是很重要的,尤其是sqlmap.config,它要和实体类相关类库,xml等关联起来,所以需要小心编写。
下载地址:Demo下载
1、如何使用iBATIS.net
(1)、新建一个解决方案叫IBatisNetDemo,里面包含两个工程,一个是IBatisWeb,你可以把它理解为三层中的表现层;还有一个工程叫IBatisNetDemo,它主要是引用iBatis.net的相关类库实现业务逻辑的,所以你也可以把它当做业务逻辑层来对待。至于数据层在哪里?读者可能已经想到,iBatis.net已经帮我们封装好了数据处理底层的东东,所以iBATIS.net的几个相关类库我们就完全可以理解为数据层。这样,一个经典三层架构就搭建好了。
(2)、IBatisNetDemo工程下,我们引用了IBatisNet.Common和IBatisNet.DataMapper两个类库(关于公共类库,放在一个公共文件夹Sharelibs下,文章最下面我会给出Demo下载链接),接着按照一般步骤写配置文件和实现代码(我会在“注意点”里详细讲解这个过程)。
(3)IBatisWeb工程是一个web项目,它引入了IBatisNetDemo工程。在web.config文件中,我们配置了日志管理相关的东东,所以还需要引入其他类库(可以查看web工程下bin文件夹下的文件)。其中log.txt文件你可以查看你自己机器上iBatis.net工作情况,对于维护和调试是有参考意义的。在页面(Default.aspx)中,你可以直接调用业务逻辑中的增删改查等操作。
下面是第一次加载网页的运行结果:

2、业务逻辑层的一些注意点
IBatisNetDemo工程是我们三层里的业务逻辑层,这里我们在微软的测试数据库Northwind中新建一个表Person来做一个业务逻辑测试。在引用了IBatisNet.Common和IBatisNet.DataMapper两个类库后,我们按部就班地要写配置和业务实现代码:
(1)、新建表Person
工程中添加Script文件夹,Person.sql如下:

(3)定义实体对应的xml文件:Person.xml(新添Map文件夹,在Map下添加SqlClient文件夹);
(4)可用的实体业务操作
新添Service文件夹,建BaseService.cs和PersonService.cs文件。BaseService初始化一个IBatis.Net下的SqlMapper对象;PersonService继承自BaseService,用SqlMapper对象实例实现增删改查等业务。
(5)三个.config文件说明
a、providers.config 这个直接拷贝到根目录,该文件定义各种数据库的驱动,包括SqlServer, Oracle, MySQL, PostgreSQL, DB2 and OLEDB, ODBC 等;
b、database.config

c、sqlmap.config

下载地址:Demo下载
作者:Jeff Wong
出处:http://jeffwongishandsome.cnblogs.com/
本文版权归作者和博客园共有,欢迎围观转载。转载时请您务必在文章明显位置给出原文链接,谢谢您的合作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构