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 条评论
登录 后参与评论

相关文章

来自专栏linux驱动个人学习

高通调试 SPI 屏的 bug

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

Selenium2+python自动化19-单选和复选框

最近发生了一些不愉快的事,其中缘由就不多说了,小编以后在这个公众号继续给大家更新,在过去的一年里感谢大家的一路支持,当然最感动的是能留下来的小伙伴,是你...

3418
来自专栏施炯的IoT开发专栏

Windows Universal 应用 – Tip Calculator

声明     以下内容取材于 Bob Tabor 的课程《Windows Phone 8.1 Development for Absolute Beginner...

1588
来自专栏我和未来有约会

Silverlight体积优化

Silverlight体积优化 Silverlight是运行在客户端的富媒体应用程序,他可以使表现形式更加的丰富多彩,相应的开发人员需要写大量的XAML、代买...

1958
来自专栏向治洪

Android 使用android-support-multidex解决Dex超出方法数的限制问题

随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的...

2718
来自专栏月牙寂

docker源码分析(3)---镜像(1)

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

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

pytest文档21-pytest-html报告优化

pytest-html报告中当用到参数化时候,获取用例的nodeid里面有中文时候,会显示[\u6350\u52a9\u6211\u4eec]这种编码(再次声明...

1024
来自专栏Winter漫聊技术

偷工不减料,Android工具推荐(1)

1.Butter Knife自动生成代码; 2.半自动(仅需复制粘贴)生成实体类;

622
来自专栏奔跑的蛙牛技术博客

servlet 理解大全

java创建的对象存放在堆中。java虚拟机会主动察觉不再使用的java对象,内存紧张的时候,垃圾收集器会启动清理垃圾,回收空间

782
来自专栏前端布道

前端开发必备之Emmet

·介绍 Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工具。 基本上,大多数的文本编辑器都会允许你存储和重用一些代码块,我们...

3064

扫码关注云+社区