问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

目前hibernate和mybatis哪个用的多

发布网友 发布时间:2022-03-24 22:10

我来回答

3个回答

热心网友 时间:2022-03-24 23:39

大一点的项目用hibernate,小一点的项目用mybatis,不过我用的话基本都是用的hibernate,但是我不会用到关联关系的东西,因为使用关联关系的话hibernate访问会影响效率

热心网友 时间:2022-03-25 00:57

使用Hibernate进行编程有以下好处:
1,消除了代码的映射规则,它全部分离到了xml或者注解里面去配置。
2,无需在管理数据库连接,它也配置到xml里面了。
3,一个会话中不需要操作多个对象,只需要操作Session对象。
4,关闭资源只需要关闭一个Session便可。
这就是Hibernate的优势,在配置了映射文件和数据库连接文件后,Hibernate就可以通过Session操作,非常容易,消除了jdbc带来的大量代码,大大提高了编程的简易性和可读性。Hibernate还提供了级联,缓存,映射,一对多等功能。Hibernate是全表映射,通过HQL去操作pojo进而操作数据库的数据。

Hibernate的缺点:
1,全表映射带来的不便,比如更新时需要发送所有的字段。
2,无法根据不同的条件组装不同的SQL。
3,对多表关联和复杂的sql查询支持较差,需要自己写sql,返回后,需要自己将数据封装为pojo。
4,不能有效的支持存储过程。
5,虽然有HQL,但是性能较差,大型互联网系统往往需要优化sql,而hibernate做不到。

Mybatis:
为了解决Hibernate的不足,Mybatis出现了,Mybatis是半自动的框架。之所以称它为半自动,是因为它需要手工匹配提供POJO,sql和映射关系,而全表映射的Hibernate只需要提供pojo和映射关系即可。
Mybatis需要提供的映射文件包含了一下三个部分:sql,映射规则,pojo。在Mybatis里面你需要自己编写sql,虽然比Hibernate配置多,但是Mybatis可以配置动态sql,解决了hibernate表名根据时间变化,不同条件下列不一样的问题,同时你也可以对sql进行优化,通过配置决定你的sql映射规则,也能支持存储过程,所以对于一些复杂和需要优化性能的sql查询它就更加方便。Mybatis几乎可以做到jdbc所有能做到的事情。

什么时候使用Hibernate,Mybatis
Hibernate作为留下的Java orm框架,它确实编程简易,需要我们提供映射的规则,完全可以通过IDE生成,同时无需编写sql确实开发效率优于Mybatis。此外Hibernate还提供了缓存,日志,级联等强大的功能,但是Hibernate的缺陷也是十分明显,多表关联复杂sql,数据系统权限*,根据条件变化的sql,存储过程等场景使用Hibernate十分不方便,而性能又难以通过sql优化,所以注定了Hibernate只适用于在场景不太复杂,要求性能不太苛刻的时候使用。
如果你需要一个灵活的,可以动态生成映射关系的框架,那么Mybatis确实是一个最好的选择。它几乎可以替代jdbc,拥有动态列,动态表名,存储过程支持,同时提供了简易的缓存,日志,级联。但是它的缺陷是需要你提供映射规则和sql,所以开发工作量比hibernate要大些。

热心网友 时间:2022-03-25 02:32

ssh = spring + struts2 + hibernate (过时)
ssm = spring + springMVC + mybatis (流行,永远不会过时)
springBoot 是spring的封装版本,太过于自动化,后期不好维护和控制,个性化开发及大型项目不如ssm。
struts2 漏洞不断,hibernate不能优化sql,不能做复杂表的关系,后期维护成本高等一系列问题,已经被抛弃,现在公司基本都是用ssm框架,因为大项目都是用ssm来选型的。现在我们的客户在合同里指明要使用ssm框架,而不是ssh,也不是springBoot.这都是从经验中得到的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
《火星异种》揭示了怎样的人性丑恶。? 日本哪些漫画动作(战斗类)设计较好,较为细致?并请稍微分析 新的一学年马上开学了,想送老师一件开学礼物,实用性强的。 开学送老师什么礼物? 未办理不动产的 没办登记的抵押合同怎么办 欠债人失联后的处理办法 早上肚子胀是什么原因 梦见姐姐去外地工作 电脑中所存的文件都在哪儿 mybatis 原生sql和hibernate原生sql的区别 mybatis sql映射文件和hibernate映射文件有什么不同 Spring Data JPA,MyBatis还有Hibernate有什么区别 Hibernate和iBatis、myBatis的区别? hibernate和mybatis的区别?应用各自的好处 mybatis与hibernate区别 hibernate 和 mybatis 的区别 MyBatis和Hibernate的区别个人感悟 mybatis和hibernate的区别面试题 Mybatis框架,和Hibernate框架的区别是什么? 问问大神,请问mybatis和hibernate的区别 mybatis与hibernate的区别,详细点 hibernate和mybatis的区别是什么? hibernate和mybatis的区别 mybatis和hibernate的区别 “mybatis”和“hibernate”的区别是什么? 华为荣耀20青春版怎么没有畅聊语音? mate20 pro手机如何开启智能助手功能? 华为荣耀30青春版语音唤醒怎么开启 我的华为荣耀20青春版开启不了用语音唤醒YOYO? Mybatis与Hibernate的性能比较?可以在项目里共用? plk-tl01h是华为什么型号的 华为plk-tl01h是什么型号 华为plk-tl01h是什么型号? 型号是PLK-TL01H,是全网通吗? 华为荣耀7pLK-TL01h是否支持otg功能呢? 华为plk-tl01h是什么型号cmllt2015cp2119多少钱 华为荣耀plk-tl01h支持联通4g吗? 华荣耀七plkal10是全网通吗 华为plk-tl01h支持电信卡吗 荣耀7PLk-TL01H可用电信卡吗 华为荣耀7plk-tl01h与plk-uloo有什么区别 华为plk-tl01h手机使用联通4g卡为什么接收不到4g信号 华为荣耀平板7怎么判断是网络版还是4G 联通的姐妹们,荣耀7(PLK-TL01H/移动4G)可以用联通4G卡吗 华为荣耀7plk-ul00是什么版本? ipad4 闪电接口 和以前接口有什么区别? 苹果手机闪电接口在哪个位置 电池标志下面显示一个插头和一闪电是什么意? ipad和iphone的数据线能互用吗