iBATIS
一词来源于“
internet
”和“
abatis
”的组合,是一个由
Clinton
Begin
在2001
年发起的开放源代码项目。最初侧重于密码软件的开发,现在是一个基于
Java
的持久层框架。
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
接口加以执行。
大多数情况下(特别是对新项目,新系统的开发而言),这样的机制无往不利,大有一统天下的势头。但是,在一些特定的环境下,这种一站式的解决方案却未必灵光。
在平时使用过程中,常常遇到以下情况:
1
. 系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几条
Select
SQL
(或存储过程)以获取所需数据,具体的表结构不予公开。
2
. 开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现(面向的金融行业而言,工商银行、中国银行、交通银行,都在开发规范中严格指定)。
3
.系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的
SQL
语句(或存储过程)才能达到系统性能设计指标。面对这样的需求,再次举起
Hibernate
大刀,却发现刀锋不再锐利,甚至无法使用,奈何?恍惚之际,只好再摸出
JDBC
准备拼死一搏,说得未免有些凄凉,直接使用
JDBC
进行数据库操作实际上也是不错的选择,只是拖沓的数据库访问代码,乏味的字段读取操作令人厌烦。
“半自动化”的
iBATIS
,却刚好解决了这个问题。这里的“半自动化”,是相对
Hibernate
等提供了全面的数据库封装机制的“全自动化”
ORM
实现而言,“全自动”
ORM
实现了
POJO
和数据库表之间的映射,以及
SQL
的自动生成和执行。而
iBATIS
的着力点,则在于
POJO
与
SQL
之间的映射关系。也就是说,
iBATIS
并不会为程序员在运行期自动生成
SQL
执行。具体的
SQL
需要程序员编写,然后通过映射配置文件,将
SQL
所需的参数,以及返回的结果字段映射到指定
POJO
。
使用
iBATIS
提供的
ORM
机制,对业务逻辑实现人员而言,面对的是纯粹的
Java
对象,这一层与通过
Hibernate
实现
ORM
而言基本一致,而对于具体的数据操作,
Hibernate
会自动生成
SQL
语句,而
iBATIS
则要求开发者编写具体的
SQL
语句。相对
Hibernate
等“全自动”
ORM
机制而言,
iBATIS
以
SQL
开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。作为“全自动”
ORM
实现的一种有益补充,
iBATIS
的出现显得别具意义。
分享到:
相关推荐
iBATIS的是一个持久层框架,它能够自动在 Java, .NET, 和Ruby on Rails中与SQL数据库和对象之间的映射。映射是从应用程序逻辑封装在XML配置文件中的SQL语句脱钩。 iBATIS是一个轻量级的框架和持久性API适合持久化的...
iBatis 是一套简单易学的持久层框架,应用范围也比较广发,与jdbc 相比,简化了JDBC 的百分之61 的代码量,将Sql 语言与java 程序分离,便于维护和开发,ORM 关系映射上比 JDBC 更加容易更加方便这些有点足以让我们...
纵观目前主流的 ORM(对象关系映射),无论 Hibernate还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO到数据库表的全套映射机制。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过 ...
8.2 根据数据库定义生成映射文件——MiddleGen 8.3 Hibernate官方工具 8.4 XDoclet-同步Hibernate基础代码 8.5 工具的使用周期 第9章 Hibernate XDoclet模板配置 9.1 IDEA 9.2 Eclipse 第10章 Hibernate益友...
8.2 根据数据库定义生成映射文件——MiddleGen 8.3 Hibernate官方工具 8.4 XDoclet-同步Hibernate基础代码 8.5 工具的使用周期 第9章 Hibernate XDoclet模板配置 9.1 IDEA 9.2 Eclipse 第10章 Hibernate益友...
本书是讲述iBATIS框架的权威著作。书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例...
相对于Hibernate和Apache OJB等“一站式”ORM解决方案而言,IBatis是一种“半自动化”的ORM实现。 这个框架将让你能够更好的在JAVA应用中设计和实现实体层。这个框架有两个主要的组成部分,一个是SQL Maps,另一个...
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装。 hibernate劣势 难以使用数据库的一些功能 满足不了程序对cache的需求 耦合度高 debug难 hibernate更新大批量
正是如此,市面上出现了一大批ORM(对象关系映射)框架,例如Hibernate,iBATIS以及本文将要介绍的MyBatis。MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。它避免了几乎所有的JDBC代码和...
iBatis是像Hibernate, JDO和EJB一样的数据持久框架,它将对象映射为SQL语句.它是个轻量级的框架并且持久性API适合持久化POJO.iBatis也与Hibernate, JDO不同,因为它使用存储过程和现有的SQL来处理数据库.
iBatis是个像Hibernate, JDO,...它是个轻量级的框架并且持久性API适合持久化POJO.iBatis也与Hibernate, JDO不同,因为它使用存储过程和现有的SQL来处理数据库. 本文我们将向你讲述如何配置iBatis来运行一个个小型程序。
NyBatis数据映射器框架介绍NyBatis是用于关系数据库的持久数据映射器框架。 NyBatis的名称是Next Generation of Your Batis的缩写。 如今,一般的趋势是JPA或Hibernate,许多人认为Data Mapper Framework很老而且不...
SQL Map使用简单的XML配置文件将Java Bean映射成SQL语句,对比其他的数据库持续层和ORM框架(如JDO的实现,Hibernate等),SQL Map最大的优点在于它简单易学。要使用SQL Map,只要熟悉Java Bean,XML和SQL,就能使您...
我对Hibernate总体的感受就是,完全透明的OR映射,即使你不是很了解操作数据库的相关内容
SQL Map 使用简单的 XML 配置文件将 Java Bean 映射成 SQL 语句,对比其他的数据库持续层和 ORM 框架(如 JDO 的实现, Hibernate 等), SQL Map 最大的优点在于它简单易学。要使用 SQL Map,只要熟悉Java Bean, ...
mybatis是一种持久层框架,也属于ORM映射。前身是ibatis。 相比于hibernatehibernate为全自动化,配置文件书写之后不需要书写sql语句,但是欠缺灵活,很多时候需要优化; mybatis为半自动化,需要自己书写sql语句,...
MyBatis 的前身是 iBatis 。是一个数据持久层(ORM)框架。至今,MyBatis 源 码内的包名仍在使用 org...相比较厚重的 hibernate 和其他 orm 框架,mybatis 更加的灵活轻巧,可以更好 的配合数据库和 sql 语句来开发项目。
Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、Struts、xDcolet、Junit、Taperstry、JSF等基础框架给出了示范。在持久层,AppFuse采用了Hibernate O/R映射...
SQL Map使用简单的XML配置文件将Java Bean映射成SQL语句,对比其他的数据库持续层和ORM框架(如JDO的实现,Hibernate等),SQL Map最大的优点在于它简单易学。要使用SQL Map,只要熟悉Java Bean,XML和SQL,就能使您...