hibernate与mybatis区别

本文对比了Hibernate与MyBatis两大ORM框架的学习门槛、适用场景、查询灵活性、代码量、缓存机制等特性。Hibernate封装性好,适用于快速开发,而MyBatis则在复杂SQL场景下更具优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.hibernate较mybatis学习门槛高,hibernate封装性较好,需要自己学习hql语言,而mybatis基本上不需要学习新的东西,只要用户 会sql就行

2.在某些特定项目下,比如说sql不复杂的项目,用hibernate开发速度较快,代码简洁,基本上不用自己写新的sql语句,而mybatis适合sql比较复杂的场景

3.hibernate一次性将对象的属性值全部查询出来,而mybatis则是随心所欲,查询出需求所需的字段即可,当数据量较大的时候,mybatis的速度较hibernate快

4.由于mybatis要求用户自己写sql,故mybatis较hibernate易于优化,可维护性高,同时mybatis的代码量较hibernate大,即使两者都有dao层的代码生成工具,mybatis在编写sql语句时也需要大量的xml标签以及大量的关键字段

5.缓存机制

hibernate与mybatis都有2层缓存

hibernate一级缓存为session级缓存,此缓存放于内存中,可以加快数据的存取速度,二级缓存为sessionFactory级的缓存,也称进程级缓存,分为内置缓存与外置缓存,内置缓存一般存储sessionFactory集合属性,比如映射元数据及预定sql语句,外置缓存一般存储数据库数据的副本,存储介质既可以用内存,也可以用硬盘

mybatis也有2层缓存,一级缓存为session缓存,二层缓存一般默认不开启,要开启的话得添加</cache>标签

一般情况下

select语句默认缓存

insert,update,delete默认刷新缓存

缓存会根据LRU算法收回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值