`

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

 

分享到:
评论

相关推荐

    ibatis 与hibernate之间的比较优点和缺点

    ### ibatis 与 hibernate 之间的比较:优点和缺点 #### 概述 在 Java 开发领域中,对象关系映射(Object Relational Mapping,简称 ORM)是一种将面向对象编程语言中的对象模型与数据库系统中的关系模型相互转换的...

    ibatis和hibernate的区别

    在Java开发中,ibatis和Hibernate都是常见的对象关系映射(ORM)框架,它们简化了数据库操作,将Java对象与数据库表之间的映射关系抽象出来,使得开发人员可以使用面向对象的方式处理数据。然而,两者在设计理念和...

    ibatis和hibernate的简单介绍

    1. **自动化的ORM映射**:Hibernate能够自动将Java对象映射到数据库表,并且提供了丰富的映射选项。 2. **强大的查询语言**:Hibernate提供了一种名为HQL(Hibernate Query Language)的查询语言,它类似于SQL但更加...

    ibatis与hibernate的区别

    其中,ibatis(现称为MyBatis)和Hibernate作为两种主流的对象关系映射(Object Relational Mapping, ORM)框架,在实际应用中各有优势与不足。本文将详细阐述ibatis与hibernate之间的主要区别,帮助开发者更好地...

    IBatisVSHibernate

    **Hibernate** 则是一个更全面的对象关系映射框架,它提供了一种自动化的对象持久化机制,将Java对象直接映射到数据库表,简化了数据库访问。Hibernate通过实体类、持久化注解或者XML配置文件定义对象与数据库表的...

    iBatis和Hibernate的区别

    iBatis与Hibernate都是Java领域内流行的ORM(Object-Relational Mapping,对象关系映射)框架,用于简化Java应用程序与数据库之间的交互。尽管它们有着相似的目标,但在实现方式、设计理念等方面存在显著差异。 ###...

    springMVC+ibatis+hibernate+spring+boostrap框架

    iBatis 是一个 SQL 映射框架,它允许开发者将 SQL 查询直接写入 XML 文件或注解中,从而与 Java 代码解耦。这使得数据库查询更灵活,避免了传统的 JDBC 编程的繁琐。iBatis 可以与 ORM(对象关系映射)框架如 ...

    SpringMVC+jbpm+ibatis+Hibernate框架

    Hibernate是一个对象关系映射(ORM)框架,它简化了Java应用与关系数据库之间的交互。Hibernate通过映射Java类到数据库表,自动处理SQL的生成和执行,使得开发者可以专注于业务逻辑而不是数据库操作。在某些场景下,...

    选用ibatis和hibernate的区别

    Hibernate通过XML文件或注解将Java类与数据库表进行映射,简化了数据库操作。主要组件包括: 1. **configuration对象**:Configuration类用于管理Hibernate的配置信息,如数据库URL、用户名、密码、JDBC驱动和...

    ibatis,hibernate 中文参考文档

    在IT行业中,数据库持久化是开发过程中的关键环节,Ibatis和Hibernate是两种广泛使用的Java持久层框架。它们都致力于简化数据库操作,让开发者能够更专注于业务逻辑而不是繁琐的SQL语句编写。以下是对这两个框架的...

    Webwork2+Spring+Ibatis+Hibernate框架中文教程

    Hibernate是另一个著名的ORM框架,它自动处理对象和数据库之间的映射,提供了透明的数据访问。Hibernate支持JPA规范,具有丰富的查询语言HQL和 Criteria API,可以极大提升开发效率。 本中文教程将详细讲解这四个...

    ibatis和hibernate配置以及比较

    4. 运行效率:不考虑缓存的情况下,iBatis通常比Hibernate更快,因为它减少了与数据库的交互次数。但若需考虑缓存,两者都有各自的局限,且管理起来较为复杂。 5. 数据库支持:iBatis对不同数据库的支持不如...

    Ibatis和Hibernate的分析比较

    首先,Hibernate是一个全面的对象关系映射框架,它简化了Java应用程序与数据库之间的交互。通过Hibernate,开发者可以用面向对象的方式处理数据,而无需直接编写SQL语句。Hibernate的核心组件包括Configuration对象...

    iBatis与数据库交互

    iBatis是一个优秀的Java持久层框架,它主要负责数据库的交互,通过XML或注解方式配置和映射SQL,使得开发者能够将精力集中在业务逻辑上,而不是繁琐的JDBC代码。iBatis的核心思想是将SQL语句和Java代码分离,提供了...

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis

    3. **Hibernate**:Hibernate是一个强大的ORM(对象关系映射)框架,用于简化数据库操作。它允许开发者用Java对象来表示数据库中的记录,通过HQL(Hibernate查询语言)或SQL进行数据操作,降低了数据库操作的复杂性...

    springMVC+ibatis+hibernate+spring+boostrap框架的lib包

    Hibernate 是一个对象关系映射(ORM)框架,用于简化 Java 应用程序与数据库之间的交互。它提供了对 SQL 的抽象,允许开发者以对象的方式处理数据库操作。Hibernate 自动管理数据库会话,提供缓存机制,提高了性能,...

    struts2-spring-ibatis-hibernate(hibernate与ibatis集成)

    **iBatis** 是一个SQL映射框架,它允许开发者编写自定义的SQL语句,而不是依赖于ORM(对象关系映射)工具生成的SQL。iBatis 将SQL与Java代码分离,使数据库查询更加灵活和可控。 **Hibernate** 是一个流行的ORM框架...

    mybatis,ibatis,hibernate 显示查询SQL

    在IT行业中,数据库操作是应用程序开发的核心部分,而MyBatis、iBatis和Hibernate都是流行的Java持久层框架,它们简化了与数据库交互的过程。这三个框架各有特点,但都提供了ORM(对象关系映射)机制,帮助开发者将...

    spring与hibernate以及ibatis集成的实例和具体配置图解

    Hibernate则是一个强大的ORM(对象关系映射)框架,它简化了数据库操作;而Ibatis则是一个轻量级的数据访问层框架,它介于SQL和Java代码之间,允许开发者编写动态和灵活的SQL。 标题“spring与hibernate以及ibatis...

Global site tag (gtag.js) - Google Analytics