`

iBATIS与Hibernate数据库映射框架

阅读更多

 

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 的出现显得别具意义。

 

分享到:
评论

相关推荐

    idea-mini-ibatis.jar

    iBATIS的是一个持久层框架,它能够自动在 Java, .NET, 和Ruby on Rails中与SQL数据库和对象之间的映射。映射是从应用程序逻辑封装在XML配置文件中的SQL语句脱钩。 iBATIS是一个轻量级的框架和持久性API适合持久化的...

    持久层框架ibatis学习笔记

    iBatis 是一套简单易学的持久层框架,应用范围也比较广发,与jdbc 相比,简化了JDBC 的百分之61 的代码量,将Sql 语言与java 程序分离,便于维护和开发,ORM 关系映射上比 JDBC 更加容易更加方便这些有点足以让我们...

    iBatis框架搭建用到的所有jar包

    纵观目前主流的 ORM(对象关系映射),无论 Hibernate还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO到数据库表的全套映射机制。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过 ...

    深入浅出Hibernate中文版 part1

    8.2 根据数据库定义生成映射文件——MiddleGen 8.3 Hibernate官方工具 8.4 XDoclet-同步Hibernate基础代码 8.5 工具的使用周期 第9章 Hibernate XDoclet模板配置 9.1 IDEA 9.2 Eclipse 第10章 Hibernate益友...

    深入浅出Hibernate中文版 part2

    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框架的权威著作。书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例...

    ibatis学习总结

    相对于Hibernate和Apache OJB等“一站式”ORM解决方案而言,IBatis是一种“半自动化”的ORM实现。 这个框架将让你能够更好的在JAVA应用中设计和实现实体层。这个框架有两个主要的组成部分,一个是SQL Maps,另一个...

    SpringBoot操作数据库jpa-SB系列之006-配套项目

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装。 hibernate劣势 难以使用数据库的一些功能 满足不了程序对cache的需求 耦合度高 debug难 hibernate更新大批量

    SpringBoot项目整合MyBatis连接数据库

    正是如此,市面上出现了一大批ORM(对象关系映射)框架,例如Hibernate,iBATIS以及本文将要介绍的MyBatis。MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。它避免了几乎所有的JDBC代码和...

    IBATIS学习笔记

    iBatis是像Hibernate, JDO和EJB一样的数据持久框架,它将对象映射为SQL语句.它是个轻量级的框架并且持久性API适合持久化POJO.iBatis也与Hibernate, JDO不同,因为它使用存储过程和现有的SQL来处理数据库.

    ibatis学习笔记

    iBatis是个像Hibernate, JDO,...它是个轻量级的框架并且持久性API适合持久化POJO.iBatis也与Hibernate, JDO不同,因为它使用存储过程和现有的SQL来处理数据库. 本文我们将向你讲述如何配置iBatis来运行一个个小型程序。

    NyBatisCore:NyBatis RDB持久性ORM映射框架

    NyBatis数据映射器框架介绍NyBatis是用于关系数据库的持久数据映射器框架。 NyBatis的名称是Next Generation of Your Batis的缩写。 如今,一般的趋势是JPA或Hibernate,许多人认为Data Mapper Framework很老而且不...

    iBATIS SQL Maps 开发指南

    SQL Map使用简单的XML配置文件将Java Bean映射成SQL语句,对比其他的数据库持续层和ORM框架(如JDO的实现,Hibernate等),SQL Map最大的优点在于它简单易学。要使用SQL Map,只要熟悉Java Bean,XML和SQL,就能使您...

    ibatis框架

    我对Hibernate总体的感受就是,完全透明的OR映射,即使你不是很了解操作数据库的相关内容

    iBATIS_SQL_Maps_V2.0开发指南_ibatis_

    SQL Map 使用简单的 XML 配置文件将 Java Bean 映射成 SQL 语句,对比其他的数据库持续层和 ORM 框架(如 JDO 的实现, Hibernate 等), SQL Map 最大的优点在于它简单易学。要使用 SQL Map,只要熟悉Java Bean, ...

    mybatis_day01.docx

    mybatis是一种持久层框架,也属于ORM映射。前身是ibatis。 相比于hibernatehibernate为全自动化,配置文件书写之后不需要书写sql语句,但是欠缺灵活,很多时候需要优化; mybatis为半自动化,需要自己书写sql语句,...

    mybatis 最佳实践

    MyBatis 的前身是 iBatis 。是一个数据持久层(ORM)框架。至今,MyBatis 源 码内的包名仍在使用 org...相比较厚重的 hibernate 和其他 orm 框架,mybatis 更加的灵活轻巧,可以更好 的配合数据库和 sql 语句来开发项目。

    AppFuse学习笔记(J2EE入门级框架)

    Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、Struts、xDcolet、Junit、Taperstry、JSF等基础框架给出了示范。在持久层,AppFuse采用了Hibernate O/R映射...

    ibatis开发指南(中文版)

    SQL Map使用简单的XML配置文件将Java Bean映射成SQL语句,对比其他的数据库持续层和ORM框架(如JDO的实现,Hibernate等),SQL Map最大的优点在于它简单易学。要使用SQL Map,只要熟悉Java Bean,XML和SQL,就能使您...

Global site tag (gtag.js) - Google Analytics