hibernate与ibatis比较

hibernate 是当前最流行的o/r mapping框架,它出身于sf.net,现在已经成为jboss的一部分了。 ibatis 是另外一种优秀的o/r mapping框架,目前属于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开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。  hibernate与ibatis的对比:

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。

时间: 2024-10-21 00:41:44

hibernate与ibatis比较的相关文章

hibernate和ibatis对比

Hibernate是当前最流行的O/R mapping框架,iBATIS是另外一种优秀的O/R mapping框架. Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO和数据库表之间的映射,以及SQL的自动生成和执行.程序员往往只需定义好了POJO到数据库表的映射关系,即可通过Hibernate提供的方法完成持久层操作.Hibernate/OJB会根据制定的存储逻辑,自动生成对应的SQL并调用JDBC接口加以执行. 而iBATIS的着力点

[转] hibernate和ibatis的对比

以下文章来源于:http://blog.csdn.net/tianya2198622/article/details/3859859 IBATIS: iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目,最初侧重于密码软件的开发,现在是一个基于Java的持久层框架. iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的JPetStore

hibernate和ibatis的区别

通过别人的资料,进行自己关注的一些扼要点的整理 共同点: 1. 不同点:1. 自动化程度上,hibernate是全自动化的orm框架,提供了对象到数据库的完全映射和sql的内部自动生成,其对象映射是指pojo到整张数据表的映射.而ibatis则是半自动化的,其对象映射是指ibatis提供了sql语句的参数到pojo的映射,sql语句的返回到pojo的映射,而且sql语句并不自动生成,由开发者手动编写和维护. 2. 框架灵活性.自动化程度上的区别,直接影响了框架灵活性的区别.比如,在场景A中,要查

浅谈Hibernate和Ibatis区别

hibernate与ibatis比较 hibernate 是当前最流行的o/r mapping框架,它出身于sf.net,现在已经成为jboss的一部分了.ibatis 是另外一种优秀的o/r mapping框架,目前属于apache的一个子项目了. 相对hibernate"o/r"而言,ibatis是一种"sql mapping"的orm实现. hibernate 对数据库结构提供了较为完整的封装,hibernate的o/r mapping实现了pojo 和数据库

浅谈hibernate、ibatis、myibatis之间的区别?

ibatis 是一个半自动的框架,为什么说是半自动呢?因为它可以生成一部分的代码,另外一部分需要我们手动去写ibatis 采用的是SQL语句跟实体之间的一个映射关系,在我们select语句中,我们通过javabean 引入到select 语句中,根据不同的占位符,注入不同的javabean属性值当然在我们这个ibatis框架中不仅仅只有javabean 的方式,还有MAP ,integer,xml等形式进行引入.用得比较多还是我们的javabean,map,interger,一般情况下xml文件

旧调重弹Hibernate与Ibatis区别——深入架构设计

对于一个粗学者而言一言概况就是:ibatis非常简单易学,hibernate相对较复杂,门槛较高.  但是,hibernate对数据库结构提供了较为完整的封装,hibernate的o/r mapping实现了pojo 和数据库表之间的映射,以及sql 的自动生成和执行.程序员往往只需定义好了pojo 到数据库表的映射关系,即可通过hibernate 提供的方法完成持久层操作.程序员甚至不需要对sql 的熟练掌握, hibernate/ojb 会根据制定的存储逻辑,自动生成对应的sql 并调用jd

JPA,Hibernate,ibatis(mybatis)如何选用?

转自:http://t.51jdy.cn/thread-259-1-1.html 传统的 业务系统,通常业务都比较复杂,懂业务的运维人员 对sql查询工具都比较熟悉.这种以 数据库 为主的 业务场景 使用 以sql为主的持久层框架 例如:ibatis,mybatis这种 性能优化的时候 sql 语句调整较为方便,甚至 业务人员 会直接提供 业务对于的 sql给开发人员. 对于快速迭代的中小型 新项目,适合使用hibernate(JPA + hibernate驱动).快速迭代 适合 使用面向对象的

IBatis和Hibernate区别

1. 简介 Hibernate是当前最流行的O/R mapping框架.它出身于sf.net,现在已经成为Jboss的一部分了.iBATIS是另外一种优秀的O/R mapping框架,现已改名叫myBATIS.目前属于apache的一个子项目了.相对Hibernate"O/R"而言,iBATIS 是一种"Sql Mapping"的ORM实现. Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO和数据库表之间的

常见Struts、Hibernate、Spring、J2EE、ibatis、Oracle等开发框架架构图及其简介

各种系统架构图及其简介 转载请保留出处,不胜人生一场醉汇总. 以下文字和架构图均在本人相关系统设计和架构方案中有所应用. 原文出处:http://space.itpub.net/6517/viewspace-609654 1.Spring架构图 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架.Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能