比较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框架.核心都是将关系型数 ...
最新文章
- 关于HP ILO 卡图形界面无响应的解决方案
- 【剑指offer - C++/Java】4、重建二叉树
- CCKS 2018 | 工业界论坛报告简介
- java开发实战经典
- C++ error: use of deleted function ‘std::atomic<short unsigned int>::atomic(const std::atomic<short
- GBaseStudio连接操作GBase数据库
- 关于ATmega328P和ATmega328PB中16位定时器的使用
- matlab计算均值和方差
- jsp+ssm+mysql实现的校园二手市场交易平台视频教程
- 下列不属于java语言特点的是_下列选项中,不属于Java语言特点的一项是( )。...
- tadb.exe、sjk_daemon.exe导致 adb.exe启动失败
- 你是否同意放开二胎政策
- 【UER #4】量子态的棋盘
- [下属谈话]管理者与下属谈话的技巧以及注意点
- GuessingGame
- 白乔原创:实战软件DIY
- 长文干货! 一文搞懂IoC的依赖注入
- 使用selenium操控浏览器爬取QQ音乐
- [Android]gradle与Android gradle
- 怎么让网页变成黑白色