iBaits.Net(1):简介与安装

iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的JPetStore实例。

  相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,ibatis 是一种“半自动化”的ORM实现。

  所谓“半自动”,可能理解上有点生涩。纵观目前主流的 ORM,无论 Hibernate 还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO 到数据库表的全套映射机制。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过 Hibernate或者OJB 提供的方法完成持久层操作。程序员甚至不需要对 SQL 的熟练掌握,Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的 SQL 并调用 JDBC 接口加以执行

iBatis框架有助于帮助开发人员在利用.NET进行应用程序开发的时候更好的使用数据库,他的目标就是写更少的代码,得到更多的数据访问功能,这听起来像jQuery哦,呵呵,事实上我就是引用自那里

那么iBatis对于应用程序是不是最好的选择呢,很明显,这要分情况说啦,iBatis和著名的NHibernate不通,它不是一个实体关系映射工具,他仅用于帮助程序员建立SQL语句或者存储过程与实体之间的映射,如果在实体和数据库表之间建立映射的话,那么NHibernate是个很好的框架,但是对于我们对数据库没有完全的控制权,需要把数据表之外的问题看作是一个表格或者与实体之间的对应的话,iBatis就明显的突出了它的优势

iBatis的工作流程

可以看到iBatis是基于ADO.NET的,它很好的封装了ADO.NET,您只需要把一个对象或者一个基本类型作为参数,这些参数作为运行SQL语句或者存储过程时候的参数,然后通过参数名称与在XML文档中定义的SQL语句或者存储过程的名字执行数据映射,执行后的返回结果就是数据实体类对象或者是一些基本类型的数据,这里只需要简单的了解,以后我会逐步阐述的,这一篇先介绍一下iBatis.net的安装

首先到官方网站下载安装包

然后,根据您工程的不同,添加对iBatis组件的引用包括

IBatisNet.Common.dll

IBatisNet.DataMapper.dll

Castle.DynamicProxy.dll

如果要使用DataAccess组件,则还需要在项目中添加IBatisNet.DataAccess.dll的引用,没有在我上面的这个安装包里,需要单独下载,如果还需要使用IBatis的日志功能,还需要应用log4net.dll

完成了对组件的引用之后,还必须在项目中添加以下三种类型的XML文档

1.providers.config---ibatis通过此文件确定数据库提供者

2.SqlMap.xml---一个数据映射文档,工程中会包含至少一个这样的文档,命名为xxx.xml,注意,这里的SqlMap.config并不是文件名

3.SqlMap.config---DataMapper配置文档,它详细的描述了工程中SqlMap.xml文档和proviers.config文档的位置和一些其他的配置项目,如缓存工程中每个数据源公用一个这样的文档

在默认情况下,SqlMap.config和providers.config要放置的位置工具项目类型的不同而不同

1,在Windows应用项目或者类库项目中,需要放在项目的/bin/debug/目录下

2,在Web应用程序中,需要放在应用程序根目录

但是这不是必须的,我在接下来的文章里还会具体介绍

但是这样做以后,VS在编写这个组件下的代码的时候,是没有代码提示功能的,我们要把压缩包中的xxx.xsd文件放到 “ VS安装路径\Common7\Packages\schemas\xml” 下面,然后在我们编写xml文档的时候,就会有很方便的代码提示功能啦

把这些准备好,我们就可以开始开发基于ibatis.net的应用啦,下一节,正式开始讲述,希望各位园友能支持小白吧

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

使用SCCM和Viewfinity进行提权实验

如今越来越多的公司开始限制用户以本地管理员的身份来运行软件,随之带来的问题是,如何允许用户执行某些管理行为,例如安装已批准的软件。市场上有一些工具旨在解决这个问...

1050
来自专栏pangguoming

Windows下安装并设置Redis

Redis对于Linux是官方支持的,安装和使用没有什么好说的,普通使用按照官方指导,5分钟以内就能搞定。详情请参考: http://redis.io/down...

2578
来自专栏杂烩

redis3.2.8 linux集群安装 原

每台机器在opt/redis下创建一个文件夹,文件夹名称redis-cluster,在这个文件夹下面再创建三个文件夹6379、6380、6381,然后分别在这三...

673
来自专栏用户1006619的专栏-1

linux下的进程控制

我们的一个系统在父进程退出后子进程偶尔出现不能正常的退出问题,这篇文章就是记录解决这个问题的过程。在unix系统上我们通过fork函数产生一个新的进程,这个新产...

852
来自专栏Jerry的SAP技术分享

找出OData service出错根源的小技巧

SAP的Fiori应用是通过OData和后台交互的。在使用Fiori应用时您可能会遇到这样的错误消息:

1939
来自专栏程序员互动联盟

浏览器开发系列第二篇:如何编译最新chromium源码

说一下为什么这么晚才发第二篇,上周和这周department的工作太多了,晚上都是十点半从公司出发,回家以后实在没有多余的精力去摸键盘了。所以请大家包涵! 上...

3398
来自专栏纯洁的微笑

一分钟了解nohup和&的功效

nohup和&究竟有啥区别?不少同学进行了回复,但并不是所有同学都理解得全对,今天把自己挖的坑自己填了。

931
来自专栏程序你好

.net程序源代码如何避免被反编译

912
来自专栏从零开始学自动化测试

selenium+python在mac环境上的搭建

前言 mac自带了python2.7的环境,所以在mac上安装selenium环境是非常简单的,输入2个指令就能安装好 需要安装的软件: 1.pip 2.sel...

2724
来自专栏张戈的专栏

Nginx在线服务状态下平滑升级或新增模块的详细操作记录

今天,产品那边发来需求,说有个 APP 的 IOS 版本下载包需要新增 https 协议,在景安购买了免费的 SSL 证书。当我往 nginx 上新增 ssl ...

4197

扫码关注云+社区