问答文章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

我来回答

2个回答

懂视网 时间: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

1 Hibernate : 标准的ORM(对象关系映射) 框架;
不要用写sql, sql 自动语句生成; 使用Hibernate 对sql 进行优化,修改比较困难
应用场景: 试用需求,变化固定中小型项目;ERP,ORM,OA
2 mybatis: 程序员自己编写sql, sql 修改,优化比较自由。
mybatis 是一个不完全的ORM 框架(部分), mybatis 存在
映射关系(输入,输出映射);
应用场景: 除了hibernate 的场景,主要应用需求项目较多的场景, 互联网项目; 敏捷开发。
映射关系描述
hibernate: 对数据库结构提供了较为完整的封装,hibernate 的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。
只需定义好了POJO 到数据库表的映射关系,即可通过提供的方法完成持久层操作。
不需要对SQL 的熟练掌握, 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。
mybatis:POJO SQL之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。 相对“O/R”而言,iBATIS 是一种“Sql Mapping”的ORM实现。

数据库的无关性:
hibernate 的 具体数据只需要利用xml 进行关联; HQL 语句与数据库无关
mybatis 更接近sql ,因此对数据库的依赖较多。

Mybatis优势

MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
MyBatis容易掌握,而Hibernate门槛较高。

Hibernate优势

Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么一些男性喜欢要求伴侣叫自己爸爸? proteus8中怎么放置引脚标号 ...在proteus里不知道用什么表示?有没有什么proteus中专门的中英文对照... 甜蜜家园郑毅铭是什么身份 甜蜜家园第二季郑毅铭喜欢谁 瑞梦喜智能空调床垫适合人群 小孩可以用智能床垫吗 智能床垫适合哪些人用 我父亲今年59岁,有高血压和颈椎病的病史,最近一段时间感觉一躺下就偏... ...刚从医院治疗回来。我想买个枕头给他,不知买怎样的比较好?_百度知 ... 有什么正规的外汇平台吗 问问大神,请问mybatis和hibernate的区别 mybatis与hibernate的区别,详细点 hibernate和mybatis的区别是什么? hibernate和mybatis的区别 mybatis和hibernate的区别 “mybatis”和“hibernate”的区别是什么? 华为荣耀20青春版怎么没有畅聊语音? mate20 pro手机如何开启智能助手功能? 华为荣耀30青春版语音唤醒怎么开启 我的华为荣耀20青春版开启不了用语音唤醒YOYO? 荣耀9我的智能助手之前是打开的,不知道咋滴就关了,怎么打开啊? 华为手机x20青春版小艺怎么开? 华为智能助手怎么设置 怎么打开华为智能助手 华为智能助手怎么开 华为荣耀二十青春版不用电源换起小艺怎么设置? 荣耀v20智慧助手怎么开启 华为荣耀20有语音唤醒功能吗? 滴滴打车客人取消了为什么扣司机成交率? 预约成交率格式 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吗? 华荣耀七plkal10是全网通吗 华为plk-tl01h支持电信卡吗