mybatis和hibernate的区别?
一、mybatis和hibernate的区别
1. sql 优化方面
Hibernate 使用 HQL(Hibernate Query Language)语句,独立于数据库。不需要编写大量的 SQL,就可以完全映射,但会多消耗性能,且开发人员不能自主的进行 SQL 性能优化。提供了日志、缓存、级联(级联比 MyBatis 强大)等特性。
MyBatis 需要手动编写 SQL,所以灵活多变。支持动态 SQL、处理列表、动态生成表名、支持存储过程。工作量相对较大。
2. 开发方面
MyBatis 是一个半自动映射的框架,因为 MyBatis 需要手动匹配 POJO 和 SQL 的映射关系。
Hibernate 是一个全表映射的框架,只需提供 POJO 和映射关系即可。
3.缓存机制比较
Hibernate 的二级缓存配置在 SessionFactory 生成的配置文件中进行详细配置,然后再在具体的表-对象映射中配置缓存。
MyBatis 的二级缓存配置在每个具体的表-对象映射中进行详细配置,这样针对不同的表可以自定义不同的缓存机制。并且 Mybatis 可以在命名空间中共享相同的缓存配置和实例,通过 Cache-ref 来实现。
Hibernate 对查询对象有着良好的管理机制,用户无需关心 SQL。所以在使用二级缓存时如果出现脏数据,系统会报出错误并提示。而 MyBatis 在这一方面,使用二级缓存时需要特别小心。如果不能完全确定数据更新操作的波及范围,避免 Cache 的盲目使用。否则脏数据的出现会给系统的正常运行带来很大的隐患。
4. 应用场景
MyBatis 适合需求多变的互联网项目,例如电商项目、金融类型、旅游类、售票类项目等。
Hibernate 适合需求明确、业务固定的项目,例如 OA 项目、ERP 项目和 CRM 项目等。
延伸阅读:
二、Hibernate 优势
Hibernate 的 DAO 层开发比 MyBatis 简单,Mybatis 需要维护 SQL 和结果映射。Hibernate 对对象的维护和缓存要比 MyBatis 好,对增删改查的对象的维护要方便。Hibernate 数据库移植性很好,MyBatis 的数据库移植性不好,不同的数据库需要写不同 SQL。Hibernate 有更好的二级缓存机制,可以使用第三方缓存。MyBatis 本身提供的缓存机制不佳。以上就是关于mybatis和hibernate的区别的内容希望对大家有帮助。

猜你喜欢LIKE
相关推荐HOT
更多>>
VBS 和 Powershell 有什么区别?
一、VBS 和 Powershell 的区别VBSVBS是基于Visual Basic的脚本语言。VBS的全称是:Microsoft Visual Basic Script Edition。用记事本就详情>>
2023-10-11 23:04:33
时间敏感网络中流量整形与流量调度算法的区别是什么?
一、时间敏感网络中流量整形与流量调度算法的区别简单来说,整型算法是在流量尺度上的,比如名列前茅秒流量是 10Mb 第二秒是 2Mb,整型器可以把...详情>>
2023-10-11 22:03:47
执行字节码的虚拟机和执行机器码的物理机有什么区别?
一、执行字节码的虚拟机和执行机器码的物理机的区别执行字节码的虚拟机和执行机器码的物理机之间有以下区别:1、编译和执行方式不同执行机器码...详情>>
2023-10-11 21:14:20
卫星定位和基站定位的区别?
一、卫星定位和基站定位的区别1、定位方式不同基站定位是根据看到的通信铁塔为基准进行的定位。任何一部手机,只要在信号覆盖的地方,随时随地...详情>>
2023-10-11 18:41:09热门推荐
VBS 和 Powershell 有什么区别?
沸js中==和===的区别?
热时间敏感网络中流量整形与流量调度算法的区别是什么?
热数据科学、大数据、人工智能、机器学习有什么区别?
新执行字节码的虚拟机和执行机器码的物理机有什么区别?
PaaS 和 SaaS 有什么区别?
XFS 文件系统中soft limit 和 hard limit 有什么区别?
直接敲击加号键和按住shift敲加号键有什么区别?
store与save有哪些区别?
卫星定位和基站定位的区别?
软件层和应用层有哪些区别?
Ghost与复制有哪些区别?
mybatis与hibernate区别?
搞c的和搞java的有啥区别?
技术干货






