Hibernate与iBatis的作用是什么,他们的区别是什么呢?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-31
ibatis与hibernate有什么区别啊?

朋友你好,
提出这个问题我想你在犹豫到底是学习其中的哪一个,下面就我的理解来给你说说他们之间的异同。
最大的区别在于:
ibatas的sql语句需要自己手动写,而hibernate能够在程序运行时自动生成。但是不要就这样以为hibernate比ibatas方便,其实二者熟悉之后的效率差不多。而hibernate还能够自动建表等等,这样的好处就在于你带着这个程序,无论到什么机器上,你都不需要数据库,应为它能自动为你完成,而ibatas就必须要有相应的数据库表才能进行移植
Hibernate的特点:
Hibernate功能强大,数据库无关性好,O/R(对象/关系)映射能力强,如果你对Hibernate相当精通,而且对Hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度很快,非常爽。Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO(实体类) 和数据库表之间的映射,以及SQL 的自动生成和执行。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。Hibernate的缺点就是学习门槛不低,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用好Hibernate方面需要你的经验和能力都很强才行,但是Hibernate现在已经是主流O/R Mapping框架,从文档的丰富性,产品的完善性,版本的开发速度都要强于iBATIS。
iBATIS的特点:
iBATIS入门简单,即学即用,提供了数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美。iBATIS的缺点就是框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。当系统属于二次开发,无法对数据库结构做到控制和修改,那iBATIS的灵活性将比Hibernate更适合。系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。在这种情况下iBATIS会有更好的可控性和表现。
现在就市场来说,hibernate的需求要大于ibatas的需求,而hibernate对个人能力的要求更高,即使公司使用ibatas,你在hibernate的基础上也能快速掌握。
在二者之间如果选择学习的话我建议hibernate,上面的理由我想已经足够清楚了。
希望能够对你有所帮助。

选择Hibernate还是iBATIS都有它的道理:

Hibernate功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,而且对Hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度很快,非常爽。

Hibernate的缺点就是学习门槛不低,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用好Hibernate方面需要你的经验和能力都很强才行。

iBATIS入门简单,即学即用,提供了数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美。

iBATIS的缺点就是框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。

我的建议就是:

如果你的团队没有Hibernate高手,那么请用iBATIS,要把Hibernate用好,并不容易;否则你应该选择Hibernate,那样你的开发速度和代码简洁性都相当棒!

BTW:

我觉得rails的ActiveRecord是平衡性做的最好的,避免了Hibernate的复杂性和学习HQL的成本,同时具备iBATIS即学即用的简单性。

Hibernate和iBateis都是做数据持久化的框架,就等于是一个O/R Mapping解决方案.
有了这框架,只要配置下映射文件,就不需要手写sql语句了.
Hibernate是全自动化的,可以说O/R做的相当全面了.
iBateis和Hibernate相比,iBatis最大的特点就是小巧,上手很快。如果你不需要太多复杂的功能,iBatis是能满足你的要求又足够灵活的最简单的解决方案。

  • ibatis和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对数据库结...
  • ibatis和hibernate的区别
    答:iBATIS的缺点就是框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。当系统属于二次开发,无法对数据库结构做到控制和修改,那iBATIS的灵活性将比Hibernate更适合。系统数据处理量巨大,性能要求极为苛刻,这...
  • hibernate 和ibatis 的区别有人能详细说一下吗?我最近用的是ibatis我...
    答:ibatis更自由一点,写的是sql语句。而hibernate更彻底一点,可以完全脱离sql方面的,只操作实体就可以完成表操作。
  • Hibernate与IBatis的优缺点及可行性分析
    答:ibatis只是封装了数据访问层 替我们做了部分的对象关系映射 但我们的代价是必须要写xml配置文件 相对于Hibernate我们还要写很多 sql Hibernate通过工具直接从数据库模式生成实体类和基本的配置文件 而且大部分情况下不需要我们写sql 会较大的提升开发效率 但这些也 有很多的局限性 尤其是对环境的要求较高(数据库设计 ...
  • ibatis和hibernate的区别
    答:Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 iBATIS需要手写sql语句,也可以生成一部分,Hibernate则基本上可以自动生成,偶尔会写一些Hql。同样的需求,iBATIS的工作量比Hibernate要大很多。类似的,如果涉及到数据库字段的修改,Hibernate修改的地方很少,而...
  • hibernate和ibatis的区别
    答:ibatis需要手写sql语句,也可以生成一部分,hibernate则基本上可以自动生成,偶尔会写一些hql。同样的需求,ibatis的工作量比 hibernate要大很多。类似的,如果涉及到数据库字段的修改,hibernate修改的地方很少,而ibatis要把那些sql mapping的地方一一修改。八.与数据映射关系 ibatis以数据库字段一一对应映射得到...
  • Hibernate与iBatis的作用是什么,他们的区别是什么呢?
    答:Hibernate和iBateis都是做数据持久化的框架,就等于是一个O/R Mapping解决方案.有了这框架,只要配置下映射文件,就不需要手写sql语句了.Hibernate是全自动化的,可以说O/R做的相当全面了.iBateis和Hibernate相比,iBatis最大的特点就是小巧,上手很快。如果你不需要太多复杂的功能,iBatis是能满足你的要求...
  • hibernate和ibatis的差异性
    答:啊,这么高级的论文,不知道是啥学校。用过Hibernate,很强大。但是有时它过于强大,而iBatis介于JDBC和Hibernate之中。一句话,在实际开发中能不用这些的,就尽量的不要用。权利越大责任越大。至于你的论文,没法帮你。
  • ibatis、hibernate 、JPA 的优缺点
    答:1)ibatis没有hibernate封装的程度高,我个人偏向于Ibatis,你懂得,如果不是为了工作效率,我宁愿JDBC 2)hibernate不适合做大型项目。网上对hibernate的争议很大,我个人觉得hibernatre不适合做大型项目,我说的大型是指那些关系模型很复杂的项目。但是hibernate比较适合初学者用来做项目或者是小型项目。3)jpa...
  • ibatis 比较起hibernate更垃圾,但为什么还会有这么多人用?
    答:各有长短, 谈不上谁比谁垃圾. 现在主流不都是spring-data-jpa + mybatis么.mybatis的sql语句放在xml中排版更好看, 然后mybatis的动态传参数也是非常方便的.对性能没有严苛的要求用hibernate就好了.动态组织sql这方面mybatis处理起来很方便的, 比如 select * from t_blog where 11 = 1 <...