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

相关文章

来自专栏北京马哥教育

用Python尝试破解wifi无线密码

? ? 作者|面包君 上点python有意思的代码。 环境准备 python2.7 pywifi模块 字典 清除系统中的任何wifi连接记录 导入模块 这里用...

2747
来自专栏一枝花算不算浪漫

[小知识点]绝对路径与相对路径.

26311
来自专栏别先生

PowerDesigner最基础的使用方法入门学习

1:入门级使用PowerDesigner软件创建数据库(直接上图怎么创建,其他的概念知识可自行学习) 我的PowerDesigner版本是16.5的,如若版本不...

9268
来自专栏腾讯大讲堂的专栏

ReactJS 服务端同构实践【QQ音乐web团队】

作者:calvin 腾讯 QQ音乐 数字音乐部 工程师 最近在项目中接入了 ReactJS 并在服务端做了同构直出。关于 ReactJS 服务端同构业界已经有...

2105
来自专栏jeremy的技术点滴

webpack的watch选项不工作原因分析

3346
来自专栏拭心的安卓进阶之路

Android 性能优化:使用 TraceView 找到卡顿的元凶

前言 今天阅读了一篇文章 《Android性能优化(一)之启动加速35%》挺不错的,有兴趣的可以去看下。 作者在文中为了定位启动耗时的问题,使用了 TraceV...

2596
来自专栏技术翻译

Java程序员应该知道的20个有用的库

总的来说,我介绍了一些对于日常项目十分有用的库,包括Log4j等日志库,Jackson等JSON解析库,以及JUnit和Mockito等单元测试API。如果需要...

603
来自专栏云计算

通过与Quickbuild和Mist.io的持续集成实现云管理和使用监控

总结我自己有关 Openstack 的各种骚操作先告一段落。这一次我想谈谈有关监控云服务的使用情况。

31010
来自专栏信安之路

linux下反弹shell的姿势

通常在获得webshell之后,如果是linux的服务器,一般会返回一个shell来对linux服务器做进一步的渗透,如:溢出提权、信息收集等。下面就说说lin...

930
来自专栏前端儿

既之前的基础,先写个简单的PHP 与数据库 的数据交流

现在先不用 css 和 javascript     先用纯 html  php  写吧。 所以那些 嵌入式 <font  size=....  什么的看看就算...

662

扫描关注云+社区