码迷,mamicode.com
首页 > 系统相关 > 详细

hibernate和ibatis的区别

时间:2014-07-01 21:40:20      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:des   style   使用   文件   数据   art   

通过别人的资料,进行自己关注的一些扼要点的整理

 

共同点:

1.

 

 

 

不同点:
1. 自动化程度上,hibernate是全自动化的orm框架,提供了对象到数据库的完全映射和sql的内部自动生成,其对象映射是指pojo到整张数据表的映射。而ibatis则是半自动化的,其对象映射是指ibatis提供了sql语句的参数到pojo的映射,sql语句的返回到pojo的映射,而且sql语句并不自动生成,由开发者手动编写和维护。

2. 框架灵活性。自动化程度上的区别,直接影响了框架灵活性的区别。比如,在场景A中,要查询表的部分字段,
在场景B中,要查询表的所有字段,hibernate由于只有一个配置文件,要么就部分字段lazy load,要么就全部
查询出来,而且默认是(全部查询的),就无法适用2个场景,灵活性差。但要是ibatis,则可以通过不同场景使用
不同sql语句来满足,并且不同的场景下,也可以有自己的sql语句的参数pojo映射和返回结果pojo映射,互不影响,
这就灵活的适应了不同场景的要求。

3. 性能上的区别。在海量数据和数据库性能要求苛刻的场合,往往是通过高度优化的sql语句来实现的,而这种情况下,
hibernate则无法实现,但ibatis则可能通过sql的优化,来进一步提升数据库代码的性能。

4. 学习门槛和成本。ibatis比hibernate更容易上手,而且hibernate也更复杂一些。

5. 框架的成熟度。

 

 

 


注意,实际开发中,要根据实际场景和需求来选择框架,举个例子

系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几条Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开

开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现(就笔者工作所面向的金融行业而言,工商银行、中国银行、交通银行,都在开发规范中严格指定

最关键的一句话是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和ibatis的区别,布布扣,bubuko.com

hibernate和ibatis的区别

标签:des   style   使用   文件   数据   art   

原文地址:http://www.cnblogs.com/jianglong-liang/p/3816677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!