广告
返回顶部
首页 > 资讯 > 数据库 >【Java框架】 Hibernate与Mybatis对比
  • 353
分享到

【Java框架】 Hibernate与Mybatis对比

2024-04-02 19:04:59 353人浏览 泡泡鱼
摘要

Hibernate与Mybatis对比    今天同事跟我说现在的小规模公司很少用hibernate,大部分都用mybatis。平时也经常接触这两方面,正好最近不怎么

Hibernate与Mybatis对比

    今天同事跟我说现在的小规模公司很少用hibernate,大部分都用mybatis。平时也经常接触这两方面,正好最近不怎么忙,查看网上其他相关技术文档 ,梳理下Mybatis和Hibernate对比,加深我们对持久化框架的理解。

一、简介

    Hibernate

        Hibernate是当前最流行的ORM框架之一,对JDBC提供了较为完整的封装。Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及sql的自动生成和执行。

    Mybatis

        Mybatis同样也是非常流行的ORM框架,主要着力点在于 POJO 与 SQL 之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定 POJO 。相对Hibernate“O/R”而言,Mybatis 是一种“Sql Mapping”的ORM实现。

二、开发速度

    难易度

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

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

    开发工作量

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

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

三、数据库移植性

    Mybatis由于所有SQL都是依赖数据库书写的,所以扩展性,迁移性比较差。

    Hibernate与数据库具体的关联都在XML中,所以HQL对具体是用什么数据库并不是很关心。

四、缓存机制对比

    相同点

        Hibernate和Mybatis的二级缓存除了采用系统默认的缓存机制外,都可以通过实现你自己的缓存或为其他第三方缓存方案,创建适配器来完全覆盖缓存行为。

    不同点

        Hibernate的二级缓存配置在SessionFactory生成的配置文件中进行详细配置,然后再在具体的表-对象映射中配置是那种缓存。

        MyBatis的二级缓存配置都是在每个具体的表-对象映射中进行详细配置,这样针对不同的表可以自定义不同的缓存机制。并且Mybatis可以在命名空间中共享相同的缓存配置和实例,通过Cache-ref来实现。

    两者比较

        因为Hibernate对查询对象有着良好的管理机制,用户无需关心SQL。所以在使用二级缓存时如果出现脏数据,系统会报出错误并提示。而MyBatis在这一方面,使用二级缓存时需要特别小心。如果不能完全确定数据更新操作的波及范围,避免Cache的盲目使用。否则,脏数据的出现会给系统的正常运行带来很大的隐患。

五、两者对比总结

    两者相同点

        Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的

        Hibernate和MyBatis都支持JDBC和JTA事务处理。

     Hibernate优势

        Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。

        Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。

        Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。

        Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。

     Mybatis优势

         MyBatis可以进行更为细致的SQL优化,可以减少查询字段。

         MyBatis容易掌握,而Hibernate门槛较高。

     一句话总结

        在博文的结尾,我们将Mybatis和Hibernate之间的区别自个用六个词做总结

        Mybatis:小巧、方便、高效、简单、直接、半自动化

        Hibernate:强大、方便、高效、复杂、间接、全自动化


您可能感兴趣的文档:

--结束END--

本文标题: 【Java框架】 Hibernate与Mybatis对比

本文链接: https://www.lsjlt.com/news/38154.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【Java框架】 Hibernate与Mybatis对比
    Hibernate与Mybatis对比    今天同事跟我说现在的小规模公司很少用hibernate,大部分都用mybatis。平时也经常接触这两方面,正好最近不怎么...
    99+
    2022-10-18
  • java中Hibernate框架有什么用
    本篇文章为大家展示了java中Hibernate框架有什么用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2....
    99+
    2023-06-14
  • SpringSecurity框架简介及与shiro特点对比
    目录前言一、 SpringSecurity 框架简介二、比较一下shiro与Spring Security2.1.用户量2.2.使用的方便程度2.3.社区支持2.4.功能丰富性三、总...
    99+
    2022-11-13
  • Java框架-MyBatis三剑客之MyBatis Generator(mybatis
    生成器设计思路: 连接数据库 -> 获取表结构 -> 生成文件 1 下载与安装 官网文档入口 最方便的 maven 插件使用方式 贴至pom 文件 2 新建配置文件 填充配置信息(官网示例) 项目实例 ...
    99+
    2018-02-28
    Java框架-MyBatis三剑客之MyBatis Generator(mybatis
  • Vue.jsReact与Angular流行前端框架优势对比
    目录Vue.js、React和Angular对比以下是Vue.js的代码示例:以下是React的代码示例:以下是Angular的代码示例:Vue.js、React和Angular对比...
    99+
    2023-03-19
    Vue.js React Angular对比 Vue.js React Angular优势
  • 怎么在java中安装Hibernate框架
    本篇文章为大家展示了怎么在java中安装Hibernate框架,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实...
    99+
    2023-06-14
  • Logback与Log4j2日志框架性能对比与调优方式
    目录前言性能测试logback同步日志异步日志(队列扩容)异步日志(半队列扩容)log4j2同步日志异步日志(队列扩容)异步日志(日志淘汰策略)异步日志(半队列扩容)异步日志(等待策...
    99+
    2022-11-12
  • Spring 框架与 Python 框架在自然语言处理中的对比分析。
    Spring 框架与 Python 框架在自然语言处理中的对比分析 随着人工智能技术的迅速发展,自然语言处理(NLP)也越来越受到关注。在NLP应用程序中,选择一个合适的框架是至关重要的。在本文中,我们将比较两种流行的框架:Spring框架...
    99+
    2023-10-08
    框架 自然语言处理 spring
  • Vue与React两个框架的粗略区别对比
    本篇内容介绍了“Vue与React两个框架的粗略区别对比”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Vu...
    99+
    2022-10-19
  • GoFrame框架gset使用对比PHP Java Redis优势
    目录特点使用入门对比PHP和JavaPHPJAVAGO原生GoFrame延伸 这篇文章将会为大家介绍GoFrame gset使用入门,为了让大家更好的理解,会简明扼要的分析一下集合类...
    99+
    2022-11-13
  • 响应式框架:Java和Django的对比分析
    响应式设计已经成为了现代Web开发的一项重要技术,它可以让网站在不同设备上的屏幕上自适应地展示。为了实现响应式设计,我们需要使用一个框架。目前市面上有很多种框架可供选择,其中Java和Django是两个比较流行的框架。本文将对这两个框架进...
    99+
    2023-09-07
    django 响应 框架
  • Android注解框架对比分析
    Java的注解(Annotation)相当于一种标记,在程序中加入注解就等于为程序打上某种标记,标记可以加在包,类,属性,方法,本地变量上。然后你可以写一个注解处理器去解析处理...
    99+
    2022-06-06
    框架 Android
  • Python六大开源框架对比
    Python 是一门动态、面向对象语言。其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的特性。除了语言本身的设计目的之外,Python标准 库也是值得大家称赞的,Python甚至还自带服...
    99+
    2022-06-04
    开源 框架 Python
  • Javascript框架Vue和React的对比
    本篇内容介绍了“Javascript框架Vue和React的对比 ”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-10-19
  • 测试框架JUnitVSTestNG对比分析
    目录引言单元测试TestNG 和 JUnit 的区别测试套件注释用例管理分组测试忽略测试参数化依赖测试异常测试超时测试结论引言 软件开发经历了许多阶段,如需求收集和分析、设计、软件开...
    99+
    2022-11-13
  • 如何在eclipse中对hibernate框架进行配置
    本篇文章为大家展示了如何在eclipse中对hibernate框架进行配置,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、ORMO:object 对象R:Realtion 关系(关系型数据库)M:...
    99+
    2023-05-31
    eclipse 中对 hibernate
  • 【持久化框架】Mybatis简介与原理
    从这篇博文开始我们学习一下Mybatis,希望大家提出宝贵的建议。 什么是Mybatis        MyBatis 本是apache的一个开源...
    99+
    2022-10-18
  • Java与kotlin详细对比
    在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。 为什么选择 Kotlin? 简洁: 大大减少样板代码的数量。 安全: 避免...
    99+
    2022-11-12
  • mybatis 查询方式与效率高低对比
    目录mybatis查询方式与效率高低mybatis提高查询效率的方式缓存机制懒加载总结mybatis查询方式与效率高低 <!--      一对一关联查询      selec...
    99+
    2023-03-15
    mybatis查询方式 mybatis查询效率 mybatis查询效率对比
  • java协程框架quasar和kotlin中的协程对比分析
    目录前言快速体验添加依赖添加java agent线程VS协程协程代码多线程代码协程完胜后记前言 早就听说Go语言开发的服务不用任何架构优化,就可以轻松实现百万级别的qps。这得益于G...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作