首要声明,该篇文章的编写是依据其他多篇文章汇总整理而来。并非完全原创,只为加深自己的理解的同时方便大家,侵权必删!


首先从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优缺点相关推荐

  1. hibernate与mybatis的区别优缺点对比

    现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手. 第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来 ...

  2. mybatis和hibernate的区别优缺点对比

    第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好H ...

  3. Hibernate和Mybatis的优缺点对比

    ORM框架:用数据库里表和实体类映射的结构框架: 1.Hibernate和Mybatis都属于ORM框架, 2.映射声明区别 Hibernate的映射关系是通过xml文件声明: Mybatis是通过t ...

  4. Hibernate和MyBatis的区别与联系

    1.Hibernate 在管理系统时代,首先是实现业务逻辑,然后才是性能,所以Hibernate在当时是主流. 2.MyBatis 在移动互联网时代,MyBatis是首选,不屏蔽SQL,程序员可以自己 ...

  5. hibernate 和 mybatis 的区别

    [转载]:JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结 转载于:https://www.cnblogs.com/virgosnail/p/10054987.html

  6. (转)HIBERNATE与 MYBATIS的对比

    第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好H ...

  7. Hibernate与 MyBatis的比较

    2019独角兽企业重金招聘Python工程师标准>>> 第一章     Hibernate与MyBatis    Hibernate 是当前最流行的O/R mapping框架,它出身 ...

  8. 【Java框架】 Hibernate与Mybatis对比

    Hibernate与Mybatis对比 今天同事跟我说现在的小规模公司很少用hibernate,大部分都用mybatis.平时也经常接触这两方面,正好最近不怎么忙,查看网上其他相关技术文档 ,梳理下M ...

  9. 说实话,Hibernate 和 MyBatis 哪个更好用?

    作者:SylvanasSun郑沐兴 来源:https://zhuanlan.zhihu.com/p/21966051 前言 由于编程思想与数据库的设计模式不同,生出了一些ORM框架.核心都是将关系型数 ...

最新文章

  1. 校园资源建设平台源代码
  2. DataGridView中获取与设置当前选中行以及SelectedRows和CurrentRow注意区分
  3. 【译文】领域模型的五个特征
  4. iis设置服务器文件权限设置,iis7如何配置写入权限以上传文件---急急急
  5. Go语言教程,电子书,PDF格式
  6. 中高级开发面试必问的Redis面试题,看这篇就够了!
  7. Package ffnvcodec was not found in the pkg-config search path
  8. 电商产品经理必修课之学员招募及在线课程学习
  9. 计算机教师计算机网络面试题,初中信息技术教师资格面试真题及答案:IP地址...
  10. 苹果涨价就衰,iPhoneSE3再次证明这一规律
  11. 电路自学2-储能元件(电容+电感+储能元件的串并联)
  12. 海风教育荣获“中国(行业)典范品牌”
  13. OA系统项目实施的难点和解决办法
  14. wifi的WPS功能
  15. android短信接收流程
  16. mt6799芯片资料mt6799参考设计资料
  17. Unity之新版输入系统InputSystem如何自定义InputActions
  18. python 交通_Python可视化交通拥堵情况
  19. 【蓝桥杯单片机国赛 第九届】
  20. Vue-Vnode类型

热门文章

  1. linux目录跳到目录,linux目录跳转快捷方式——z武器
  2. hp ELITEBOOK异常关机解决
  3. 【正点原子FPGA连载】 第二十二章 HDMI方块移动实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
  4. 【每日新闻】一台76年苹果一代电脑被拍卖300多万
  5. oracle四舍五入、取整例子
  6. 芯片龙头股票遭青睐 恒大现身次新军工股!
  7. .net sdk 下载
  8. WKWebView高度自适应
  9. 通过以太坊账户地址恢复私钥,并通过私钥恢复出对应公钥
  10. 设计模式之外观模式php,PHP设计模式:外观模式