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

mybatis与hibernate的区别,详细点

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

我来回答

7个回答

懂视网 时间:2022-03-25 02:31

mybatis和hibernate的区别是:

  

  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方便很多。

  

  

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

mybatis的主要思想是sql Mapping,而hibernate是OR Mapping,mybatis应用到项目中会比较直观一点,能直接看到sql,而hibernate是通过操作对象操作数据,可以很灵活的运用于不同的数据库之间。个人感觉mybatis用着更灵活

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

1.开发速度
MyBatis支持的学习相比Hibernate更简单,支持原生sql,学习更简单。Hibernate的学习难度更大。开发速度差距不大。MyBatis要维护层数据库字段和bean属性映射,Hibernate要在bean中添加字段映射。
2.运行效率
MyBatis支持原生sql自定义查询字段更加灵活,基本属于JDBC操作。hibernate是对JDBC更复杂的封装。每次查询需要完整的映射,对待复杂的查询通过HQL语句生成的sql语句效率不能保证。所以MyBatis会比Hi稍快。
拓展资料:
相同点:他们都是市面上流行的ORM框架。他们均是通过xml配置生成sessionFactory然后通过sessionFactory生成session执行sql和管理事务。他们都支持JDBC和事务管理。

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

mybatis是半自动的,hibernate是全自动的,就是说mybatis可以配置sql语句,对于sql调优来说是比较好的,hibernate会自动生成所有的sql语句,调优不方便,hibernate用起来难度要大于mybatis

热心网友 时间:2022-03-25 04:23

mybatis是把sql语句与java代码分离了...sql语句在xml文件配置的...
hibernate是ORM框架,它对jdbc进行了封装,在分层结构中处于持久化层,
它能建立面向对象的域模型和关系数据模型之间的映射.
它大大简化了层的编码工作

热心网友 时间:2022-03-25 06:31

难易度

Hibernate的真正掌握要比Mybatis困难,Hibernate比mybatis更加重量级一些。

Mybatis框架相对简单很容易上手,但也相对简陋些。

开发工作量

Mybatis需要我们手动编写SQL语句,回归最原始的方式,所以可以按需求指定查询的字段,提高程序的查询效率。

Hibernate也可以自己写SQL语句来指定需要查询的字段,但这样破坏了Hibernate封装以及简洁性。

数据库移植性

热心网友 时间:2022-03-25 08:56

mybatis 是半自动,hibernate是全自动;
mybatis结合了hibernate和JDBC两者的特点,比较灵活。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
想买红米但没银行卡 开美宜佳便利店是加盟好还是直接转一个美宜佳店好 ...就给你一个交易号,能到美宜佳付款,请问美宜佳是怎样付款的_百度知 ... 用美宜佳代购会不会看到我买的东西 重返帝国弓弩营对诸葛连弩有加成吗 重返帝国城市风格选什么好 重返帝国城市风格选择推荐 重返帝国城市风格怎么切换 重返帝国城市如何切换风格 重返帝国城市风格大全 特色兵种及增益介绍 重返帝国特殊兵种怎么生产-特殊兵种生产攻略 重返帝国怎么训练诸葛弩 hibernate和mybatis的区别是什么? hibernate和mybatis的区别 mybatis和hibernate的区别 “mybatis”和“hibernate”的区别是什么? 华为荣耀20青春版怎么没有畅聊语音? mate20 pro手机如何开启智能助手功能? 华为荣耀30青春版语音唤醒怎么开启 我的华为荣耀20青春版开启不了用语音唤醒YOYO? 荣耀9我的智能助手之前是打开的,不知道咋滴就关了,怎么打开啊? 华为手机x20青春版小艺怎么开? 华为智能助手怎么设置 怎么打开华为智能助手 华为智能助手怎么开 华为荣耀二十青春版不用电源换起小艺怎么设置? 荣耀v20智慧助手怎么开启 华为荣耀20有语音唤醒功能吗? 滴滴打车客人取消了为什么扣司机成交率? 预约成交率格式 滴滴快车怎样才能抢到大单. 滴滴专车指派成交率什么意思 问问大神,请问mybatis和hibernate的区别 Mybatis框架,和Hibernate框架的区别是什么? mybatis和hibernate的区别面试题 MyBatis和Hibernate的区别个人感悟 hibernate 和 mybatis 的区别 mybatis与hibernate区别 hibernate和mybatis的区别?应用各自的好处 Hibernate和iBatis、myBatis的区别? Spring Data JPA,MyBatis还有Hibernate有什么区别 mybatis sql映射文件和hibernate映射文件有什么不同 mybatis 原生sql和hibernate原生sql的区别 目前hibernate和mybatis哪个用的多 Mybatis与Hibernate的性能比较?可以在项目里共用? plk-tl01h是华为什么型号的 华为plk-tl01h是什么型号 华为plk-tl01h是什么型号? 型号是PLK-TL01H,是全网通吗? 华为荣耀7pLK-TL01h是否支持otg功能呢? 华为plk-tl01h是什么型号cmllt2015cp2119多少钱 华为荣耀plk-tl01h支持联通4g吗?