ibatis与hibernate有什么区别

来源:互联网 发布:oracle数据库专家认证 编辑:程序博客网 时间:2024/05/19 16:35

iBatis的sql语句需要自己手动写,而Hibernate能够在程序运行时自动生成。但是不要就这样以为Hibernate比iBatis方便,其 实二者熟悉之后的效率差不多。而Hibernate还能够自动建表等等,这样的好处就在于你带着这个程序,无论到什么机器上,你都不需要数据库,应为它能 自动为你完成,而iBatis就必须要有相应的数据库表才能进行移植
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的需求要大于iBatis的需求,而Hibernate对个人能力的要求更高,即使公司使用iBatis,你在Hibernate的基础上也能快速掌握。

总结:
面试的时候, 从这两个地方想,
1. 在考虑性能问题时, 用哪个更好?
2. 在做大型项目室, 用哪个更好?
依据这两个问题来回答, 基本这题肯定就过关了.

基础概念上,
Hibernate基于ORM, 使用hql 语句
iBatis直接使用sql

0 0