作家
登录

浅析Mybatis与Hibernate的区别与用途

作者: 来源: 2017-10-26 16:44:00 阅读 我要评论

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散!


有很长一段时光对mybatis是比较陌生的,肮脏道与Hibernate一样是个orm数据库框架。跟着应用闇练度的增长,发明它与Hibernate差别是异常大年夜的,应当结合不合的情况分析选用。结合至今为止的经验,总结出以下几点:

1. hibernate是全主动,而mybatis是半主动

hibernate完全可以经由过程对象关系模型实现对数据库的操作,拥有完全的JavaBean对象与数据库的映射构造来主动生成sql。而mybatis仅有根本的字段映射,对象数据以及对象实际关系仍然须要经由过程手写sql来实现和治理。

2. hibernate数据库移植性弘远年夜于mybatis

mybatis:

hibernate经由过程它强大年夜的映射构造和hql说话,大年夜大年夜降低了对象与数据库(oracle、mysql等)的耦合性,而mybatis因为须要手写sql,是以与数据库的耦合性直接取决于法度榜样员写sql的办法,如不雅sql不具通用性而用了很多某数据库特点的sql语句的话,移植性也会随之降低很多,成本很高。

hibernate日记体系异常健全,涉及广泛,包含:sql记录、关系异常、优化警告、缓存提示、脏数据警告等;而mybatis则除了根本记录功能外,功能脆弱很多。

3. hibernate拥有完全的日记体系,mybatis则欠缺一些

4. mybatis比拟hibernate须要关怀很多细节

hibernate设备要比mybatis复杂的多,进修成本也比mybatis高。但也正因为mybatis应用简单,才导致它要比hibernate关怀很多技巧细节。mybatis因为不消推敲很多细节,开辟模式上与传统jdbc差别很小,是以很轻易上手并开辟项目,但忽视细节会导致项今朝期bug较多,因而开辟出相对稳定的软件很慢,而开辟出软件却很快。hibernate则正好与之相反。然则如不雅应用hibernate很闇练的话,实际上开辟效力涓滴不差更甚至超出mybatis。

5. sql直接优化上,mybatis要比hibernate便利很多

跟着应用情况的赓续增多,我又做了进一步的总结总结:

2. 有更好的二级缓存机制,可以应用第三方缓存。

mybatis:小巧、便利、高效、简单、直接、半主动

hibernate:强大年夜、便利、高效、复杂、绕弯子、全主动

因为mybatis的sql都是写在xml里,是以优化sql比hibernate便利很多。而hibernate的sql很多都是主动生成的,无法直接保护sql;虽有hql,但功能照样不及sql强大年夜,见到报表等掉常需求时,hql也歇菜,也就是说hql是有局限的;hibernate固然也支撑原生sql,但开辟模式上却竽暌闺orm不合,须要转换思维,是以应用上不是异常便利。总之写sql的灵活度上hibernate不及mybatis。

1. 入门简单,即学即竽暌姑,供给了数据库萌芽的主动对象绑定功能,并且延续了很好的SQL应用经验,对于没有那么高的对象模型请求的项目来说,相当完美。

2. 可以进行更为过细的SQL优化,可以削减萌芽字段。

3. 缺点就是框架照样比较简陋,功能另出缺掉,固然简化了数据绑定代码,然则全部底层数据库萌芽实际照样要本身写的,工作量也比较大年夜,并且不太轻易适应快速数据库修改。

4. 二级缓存机制不佳。

hibernate:

1. 功能强大年夜,数据库无关性好,O/R映射才能强,如不雅你对Hibernate相当精晓,并且对Hibernate进行了恰当的封装,那么你的项目全部持久层代码会相当简单,须要写的代码很少,开辟速度很快,异常爽。

3. 缺点就是进修门槛不低,要精晓门槛更高,并且怎么设计O/R映射,在机能和对象模型之间若何衡量取得均衡,以及如何用好Hibernate方面须要你的经验和才能都很强才行。

举个形象的比方:

mybatis:机械对象,应用便利,拿来就用,但工作照样要本身来作,不过对象是活的,怎么使由我决定。

hibernate:智能机械人,但研发它(进修、闇练度)的成本很高,工作都可以摆脱他了,但仅限于它能做的事。

【编辑推荐】

  1. HiTSDB时序数据库技巧架构和产品解析
  2. 分布式数据库数据一致性道理解释与实现
  3. 硬件是若何影响数据库的成长
  4. 谷歌推出视频数据库“AVA”,中国联通与腾讯合作共建云数据中间
  5. 若何设备MySQL数据库超时设置
【义务编辑:武晓燕 TEL:(010)68476606】

  推荐阅读

  互联网时代如何更有效审理知识产权案件

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散!“我们很多基层法院都是如许。在广东,特别是珠三角的一些地区,案件数量大年夜、檀卷多,对法官造成的压力是异常大>>>详细阅读


本文标题:浅析Mybatis与Hibernate的区别与用途

地址:http://www.17bianji.com/lsqh/38266.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)