比较hibernate和mybatis优缺点
首要声明,该篇文章的编写是依据其他多篇文章汇总整理而来。并非完全原创,只为加深自己的理解的同时方便大家,侵权必删!
首先从orm(object relation mapping)等级来讲,hibernate和mybatis都属于orm框架,hibernate属于4级(顶级),mybatis属于2级。从此可见,hibernate比mybatis更强大一些,强大的体现在于:
●开发速度与工作量。
hibernate简化了dao层,使用者不需要考虑sql语句的编写与执行以及结果映射,将着重点放在业务逻辑上,而mybatis需要使用者手写sql语句以及resultMap,所以hibernate开发速度要比mybatis快。但是hibernate门槛要比mybatis高,两者之间做选择时要根据项目实际需求作为标准,如:项目绝大多数是简单的数据操作,比如增删改查,没有太多的复杂sql语句,这时选择hibernate用于dao工具会更简便、效率更高一些;反之,如果项目有很多复杂的sql语句,则适合选择mybatis,因为mybatis可以进行更为细致的sql优化,可以减少查询字段从而提高效率(因为hibernate会把所有字段都进行处理,效率会稍低)。
当然hibernate也可以通过使用者自行编写sql语句与数据库交互,比如HQL查询、原生SQL查询,但是这样我个人认为就违背了hibernate简化dao层的初衷。
●缓存方面(简单了解下,欲深究可以看看其它文章,本文章后续再做补充)
hibernate的一级缓存是session缓存,这个涉及到session生命周期和hibernate对象状态(瞬时状态,亦称临时状态、持久化状态、离线状态,亦称游离状态、托管状态),个人理解,hibernate的一级缓存和快照机制可以很好地减轻数据库任务,因为当缓存中对象与快照相比较无变化时不回去操作数据库。二级缓存暂时不说。
mybatis缓存机制可以使用者自己配置和定制,比较方便。
例:<cache eviction="LRU" flushInterval="60000" size="512" readOnly="true" />
两者比较:因为Hibernate对查询对象有着良好的管理机制,用户无需关心SQL。所以在使用二级缓存时如果出现脏数据,系统会报出错误并提示。而MyBatis在这一方面,使用二级缓存时需要特别小心。如果不能完全确定数据更新操作的波及范围,避免Cache的盲目使用。否则,脏数据的出现会给系统的正常运行带来很大的隐患。
该图片截取自:https://www.cnblogs.com/inspurhaitian/p/4647485.html
比较hibernate和mybatis优缺点相关推荐
- hibernate与mybatis的区别优缺点对比
现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手. 第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来 ...
- mybatis和hibernate的区别优缺点对比
第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好H ...
- Hibernate和Mybatis的优缺点对比
ORM框架:用数据库里表和实体类映射的结构框架: 1.Hibernate和Mybatis都属于ORM框架, 2.映射声明区别 Hibernate的映射关系是通过xml文件声明: Mybatis是通过t ...
- Hibernate和MyBatis的区别与联系
1.Hibernate 在管理系统时代,首先是实现业务逻辑,然后才是性能,所以Hibernate在当时是主流. 2.MyBatis 在移动互联网时代,MyBatis是首选,不屏蔽SQL,程序员可以自己 ...
- hibernate 和 mybatis 的区别
[转载]:JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结 转载于:https://www.cnblogs.com/virgosnail/p/10054987.html
- (转)HIBERNATE与 MYBATIS的对比
第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好H ...
- Hibernate与 MyBatis的比较
2019独角兽企业重金招聘Python工程师标准>>> 第一章 Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身 ...
- 【Java框架】 Hibernate与Mybatis对比
Hibernate与Mybatis对比 今天同事跟我说现在的小规模公司很少用hibernate,大部分都用mybatis.平时也经常接触这两方面,正好最近不怎么忙,查看网上其他相关技术文档 ,梳理下M ...
- 说实话,Hibernate 和 MyBatis 哪个更好用?
作者:SylvanasSun郑沐兴 来源:https://zhuanlan.zhihu.com/p/21966051 前言 由于编程思想与数据库的设计模式不同,生出了一些ORM框架.核心都是将关系型数 ...
最新文章
- 校园资源建设平台源代码
- DataGridView中获取与设置当前选中行以及SelectedRows和CurrentRow注意区分
- 【译文】领域模型的五个特征
- iis设置服务器文件权限设置,iis7如何配置写入权限以上传文件---急急急
- Go语言教程,电子书,PDF格式
- 中高级开发面试必问的Redis面试题,看这篇就够了!
- Package ffnvcodec was not found in the pkg-config search path
- 电商产品经理必修课之学员招募及在线课程学习
- 计算机教师计算机网络面试题,初中信息技术教师资格面试真题及答案:IP地址...
- 苹果涨价就衰,iPhoneSE3再次证明这一规律
- 电路自学2-储能元件(电容+电感+储能元件的串并联)
- 海风教育荣获“中国(行业)典范品牌”
- OA系统项目实施的难点和解决办法
- wifi的WPS功能
- android短信接收流程
- mt6799芯片资料mt6799参考设计资料
- Unity之新版输入系统InputSystem如何自定义InputActions
- python 交通_Python可视化交通拥堵情况
- 【蓝桥杯单片机国赛 第九届】
- Vue-Vnode类型