`

Hibernat and Ibatis

阅读更多

Hibernate  VS  iBATIS

简介
Hibernate 是当前最流行的O/R mapping框架,当前版本是3.05。它出身于sf.net,现在已经成为Jboss的一部分了



iBATIS 是另外一种优秀的O/R mapping框架,当前版本是2.0。目前属于apache的一个子项目了。



相对Hibernate“O/R”而言,iBATIS 是一种“Sql Mapping”的ORM实现。



Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。



而iBATIS 的着力点,则在于POJO 与SQL之间的映射关系。也就是说,iBATIS并不会为程序员在运行期自动生成SQL 执行。具体的SQL 需要程序员编写,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。

使用iBATIS 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,

这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate会自动生成SQL 语句,而iBATIS 则要求开发者编写具体的SQL 语句。相对Hibernate而言,iBATIS 以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。



二者的对比:
1.  iBATIS非常简单易学,Hibernate相对较复杂,门槛较高。

2.  二者都是比较优秀的开源产品

3.  当系统属于二次开发,无法对数据库结构做到控制和修改,那iBATIS的灵活性将比Hibernate更适合

4.  系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。在这种情况下iBATIS会有更好的可控性和表现。

5.  iBATIS需要手写sql语句,也可以生成一部分,Hibernate则基本上可以自动生成,偶尔会写一些Hql。同样的需求,iBATIS的工作量比 Hibernate要大很多。类似的,如果涉及到数据库字段的修改,Hibernate修改的地方很少,而iBATIS要把那些sql mapping的地方一一修改。

6.  以数据库字段一一对应映射得到的PO和Hibernte这种对象化映射得到的PO是截然不同的,本质区别在于这种PO是扁平化的,不像Hibernate映射的PO是可以表达立体的对象继承,聚合等等关系的,这将会直接影响到你的整个软件系统的设计思路。

7.  Hibernate现在已经是主流O/R Mapping框架,从文档的丰富性,产品的完善性,版本的开发速度都要强于iBATIS

8.  最关键的一句话是iBATIS的作者说的:

If you are starting a new project and you're in full control of your object model and database design, Hibernate is a good choice of O/R tool.

If you are accessing any 3rd party databases (e.g. vendor supplied), or you're working with a legacy database, or even just a really poorly designed database, then an O/R mapper might not be capable of handling the situation. That's were an SQL Mapper comes in handy

分享到:
评论

相关推荐

    hibernate_And_Ibatis.doc

    【hibernate 和 iBATIS 框架详解】 Hibernate 和 iBATIS 是两种流行的 Java 持久层框架,它们都致力于简化对象关系映射(ORM),将 Java 类对象与数据库表之间的交互变得更加便捷。然而,它们在实现方式和设计理念...

    Struts Hibernate Ibatis Spring RAD WID

    -- Be familiar with popular web development frameworks and tools, such as Struts, Spring, Hibernate. -- Good knowledge of database systems and development. -- Familiar with DB2 development tools and ...

    传智播客ibatis教程_ibatis优点总结

    iBATIS,全称为“互联网应用程序基础工具包”(Internet Basics for Architecture with Transactions and SQL),是由Apache Software Foundation维护的一个开源项目。它最初由Clinton Begin创建,是一个SQL映射框架...

    ibatis guide and jar

    标题 "ibatis guide and jar" 暗示了我们即将探讨的是关于iBatis这个流行的Java持久层框架的使用指南和相关的jar文件。iBatis是一个轻量级的ORM(对象关系映射)工具,它允许开发者将SQL语句直接嵌入到Java代码中,...

    Spring and iBATIS

    Java的JDBC API尽管功能强大,但在实际应用中显得较为底层且复杂,因此业界出现了多种技术来增强其功能,如EJB、JDO、Hibernate、Toplink(来自Oracle)、iBATIS、SQLExecutor以及Spring框架提供的JDBC支持等。...

    ibatis拼接字符串

    虽然 iBatis 在某些方面与 Hibernate 类似,但它们之间的主要区别在于 iBatis 提供了更细粒度的 SQL 控制能力,这使得 iBatis 在复杂查询或性能敏感的应用场景中更具优势。 ### 二、动态 SQL 的概念 在实际应用中...

    Ibatis查询Id列表.doc

    相比于其他框架如Hibernate等,Ibatis更加轻量级,同时也更加灵活,因为它允许开发人员手动控制SQL语句的细节。 ### 二、文档标题与描述分析 文档标题与描述均为“Ibatis查询Id列表.doc”,这表明文档内容主要聚焦...

    quartz+ibatis+oracle/mysql\quartz+hibernate+oracle/mysql

    持久层 ibatis and hibernate 项目用eclipse 导入 不同的数据库 请在数据库运行不同的SQL 脚本 用hibernate 时注意 是什么数据库 hibernate.properties 文件第一二行自行更改数据库类型 如果不能正常运行、欢迎...

    javaweb,struts,spring,ibatis,hibernate,ajax等API及帮助文档

    本压缩包提供的资源涵盖了几个核心的Java Web框架和技术,包括Struts、Spring、iBatis、Hibernate以及Ajax,这些都是构建高效、动态Web应用程序的基石。下面,我们将详细探讨这些技术及其API,帮助你深入理解它们的...

    iBATIS教程之快速入门浅析

    与Hibernate等其他ORM框架相比,iBATIS 更为简洁,上手速度更快,适合那些不需要复杂功能但又希望简化数据库访问的项目。 在快速入门iBATIS的过程中,首先要理解其基本概念。iBATIS通过XML配置文件来定义SQL语句与...

    iBatis条件查询

    iBatis是一个轻量级的Java持久层框架,它与Hibernate相比,更加灵活,适合于对数据库操作有自定义需求的项目。在本资源中,"iBatis条件查询"着重展示了如何根据业务需求定制SQL语句进行数据检索,尤其在不涉及复杂...

    ibatis中输入输出各种类型的参数分析及#与$区别

    相较于知名的Hibernate框架,iBatis在实现上更为简单直接,更适合对SQL有较高控制需求的应用场景。 #### 输入输出参数类型分析 在iBatis中,输入输出参数类型的支持非常丰富,几乎涵盖了Java中常见的所有基本数据...

    JAVA教程(struts,spring,hibernate)

    Java教程涵盖了多个重要的框架和技术,包括Struts、Spring、Hibernate以及Ajax和iBatis。这些技术都是Java开发中不可或缺的部分,特别是在企业级Web应用开发领域。 1. **Struts**: Struts是Apache软件基金会的一个...

    ibatis笔记

    它不同于ORM框架如Hibernate,Ibatis更注重SQL的自由度,允许开发者直接编写SQL语句,将SQL与Java代码分离,同时提供了灵活的数据映射机制,使得数据库操作变得更加便捷。 Ibatis中的核心概念包括SqlMapConfig.xml...

    iBatis教程中文版

    与Hibernate等框架不同的是,iBatis更多地依赖于存储过程和自定义SQL查询,这使得开发者可以更灵活地控制SQL语句。 #### 二、iBatis的基本配置 在使用iBatis之前,需要对其进行适当的配置。主要包括以下几个方面:...

    持久层框架ibatis学习笔记

    尽管 iBatis 相比 Hibernate 在自动化程度上略显不足,但对于需要高度定制 SQL 查询的场景来说,iBatis 的优势十分明显。此外,iBatis 与 Spring 的整合也非常顺畅,为构建大型企业级应用提供了强有力的支持。总的来...

    ibatis技术

    与Hibernate等全对象关系映射(ORM)框架相比,Ibatis 更加轻量级,性能通常更好,因为它允许开发者直接编写SQL,避免了ORM框架可能带来的性能开销。但同时,Ibatis 对于复杂的对象关系映射支持不如Hibernate强大。 ...

    IBATIS2开发指南

    IBATIS2相较于Hibernate等全ORM框架,更加轻量,允许开发者保留更多的SQL控制权,但在自动化程度和抽象层次上略逊一筹。 通过阅读《IBATIS-SqlMaps-2_cn.pdf》文档,你可以深入理解IBATIS2的架构、配置和使用方法,...

    EShop

    在这个项目中,我们看到涉及了如Ajax、Hibernate、iBatis、Spring以及Struts等关键技术和框架。接下来,我们将深入探讨这些技术在构建EShop中的作用。 **1. Ajax(Asynchronous JavaScript and XML)** Ajax的核心...

Global site tag (gtag.js) - Google Analytics