请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

Hibernate和MyBatis的相同点和区别!

[复制链接]
查看: 62|回复: 0

2万

主题

2万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
71562
发表于 2020-1-14 18:10 | 显示全部楼层 |阅读模式
Hibernate和MyBatis的类似点和区分!

类似点
Hibernate与MyBatis都可所以经过SessionFactoryBuider由XML设备文件天生SessionFactory,然后由SessionFactory 天生Session,末端由Session来开启实行事务和SQL语句。
其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。Hibernate和MyBatis都支持JDBC和JTA事务处置惩罚。
不同点
(1)hibernate是全自动,而mybatis是半自动
hibernate完全可以经过工具关系模子实现对数据库的操纵,具有完整的JavaBean工具与数据库的映照结构来自动天生sql。而mybatis唯一底子的字段映照,工具数据以及工具现实关系仍然必要经过手写sql来实现和治理。
(2)hibernate数据库移植性宏大于mybatis
hibernate经过它强大的映照结构和hql说话,大大低落了工具与数据库(Oracle、MySQL等)的耦合性,而mybatis由于必要手写sql,是以与数据库的耦合性间接取决于步伐员写sql的方式,假如sql不具通用性而用了很多某数据库特征的sql语句的话,移植性也会随之低落很多,本钱很高。
(3)hibernate具有完整的日志系统,mybatis则欠缺一些
hibernate日志系统很是健全,触及普遍,包含:sql记录、关系很是、优化警告、缓存提醒、脏数据警告等;而mybatis则除了底子记录功用外,功用薄弱很多。
(4)mybatis相比hibernate必要关心很多细节
hibernate设备要比mybatis复杂很多,进修本钱也比mybatis高。但也正由于mybatis利用简单,才致使它要比hibernate关心很多技术细节。mybatis由于不用考虑很多细节,开辟形式上与传统jdbc区分很小,是以很轻易上手并开辟项目,但疏忽细节会致使项现在期bug较多,因此开辟出相对安定的软件很慢,而开辟出软件却很快。hibernate则恰好与之相反。可是假如利用hibernate很熟练的话,现实上开辟服从丝绝不差于以致超越mybatis。
(5)sql间接优化上,mybatis要比hibernate方便很多
由于mybatis的sql都是写在xml里,是以优化sql比hibernate方便很多。而hibernate的sql很多都是自动天生的,没法间接保护sql;虽有hql,但功用照旧不及sql强大,见到报表等变态需求时,hql也歇菜,也就是说hql是有范围的;hibernate固然也支持原生sql,但开辟形式上却与orm不同,必要转换脑筋,是以利用上欠黑白常方便。总之写sql的灵活度上hibernate不及mybatis。
(6)缓存机制上,hibernate要比mybatis更好一些
MyBatis的二级缓存设备都是在每个具体的表-工具映照及第行具体设备,这样针对差此表面可以自界说差此外缓存机制。而且Mybatis可以在命名空间中同享类似的缓存设备和实例,经过Cache-ref来实现。
而Hibernate对查询工具有着杰出的治理机制,用户无需关心SQL。所以在利用二级缓存时假如出现脏数据,系统会报出错误并提醒。
总结
(1)两者类似点
Hibernate和Mybatis的二级缓存除了采取系统默许的缓存机制外,都可以经过实现你自己的缓存或为其他第三方缓存计划,建立适配器来完全覆盖缓存活动。
(2)两者不同点
Hibernate的二级缓存设备在SessionFactory天生的设备文件及第行具体设备,然后再在具体的表-工具映照中设备是那种缓存。而MyBatis在利用二级缓存时必要出格谨慎。假如不能完全肯定数据更新操纵的涉及范围,制止Cache的自觉利用。否则,脏数据的出现会给系统的一般运转带来很大的隐患。
(3)举个形象的比方
MyBatis:呆板工具,利用方便,拿来就用,但工作照旧要自己来作,不外工具是活的,怎样使由我决议。(玲珑、方便、高效、简单、间接、半自动)
Hibernate:智能呆板人,但研发它(进修、熟练度)的本钱很高,工作都可以摆脱他了,但仅限于它能做的事。(强大、方便、高效、复杂、绕弯子、全自动)
末端,喜好这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!必要更多java进修材料的也可以私信我!免费给java小白供给材料!
祝关注我的人都:身段健康,财源广进,福如东海,寿比南山,早生贵子,从不掉发!

免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 淄博新闻网-淄博日报 淄博晚报 淄博财经新报 掌中淄博 淄博专业新闻资讯发布网站 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表