当前位置: 首页 > 面试题库 >

请简述一下Mybatis和Hibernate的区别是什么?

齐浩淼
2023-03-14
本文向大家介绍请简述一下Mybatis和Hibernate的区别是什么?相关面试题,主要包含被问及请简述一下Mybatis和Hibernate的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下

考察点:Spring框架

参考回答:

  1. 简介

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

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

  1. 缓存机制对比

相同点

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

不同点

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

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

两者比较

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

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

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

 类似资料:
  • Hibernate 和 MyBatis 都是目前业界中主流的对象关系映射(ORM)框架,它们的主要区别如下。 1)sql 优化方面 Hibernate 使用 HQL(Hibernate Query Language)语句,独立于数据库。不需要编写大量的 SQL,就可以完全映射,但会多消耗性能,且开发人员不能自主的进行 SQL 性能优化。提供了日志、缓存、级联(级联比 MyBatis 强大)等特性。

  • 本文向大家介绍请简述一下线程的sleep()方法和yield()方法有什么区别?相关面试题,主要包含被问及请简述一下线程的sleep()方法和yield()方法有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 考察点:线程 有两种实现方法,分别是继承Thread类与实现Runnable接口用synchronized关键字修饰同步方法,反对使用stop(),是因为它不安全。它会解除由线程获取的

  • 本文向大家介绍请简要说明一下JAVA中cyclicbarrier和countdownlatch的区别分别是什么?相关面试题,主要包含被问及请简要说明一下JAVA中cyclicbarrier和countdownlatch的区别分别是什么?时的应答技巧和注意事项,需要的朋友参考一下 考察点:线程 CountDownLatch和CyclicBarrier都能够实现线程之间的等待,只不过它们侧重点不同:

  • 本文向大家介绍请描述一下cookies、sessionStorage和localStorage的区别?相关面试题,主要包含被问及请描述一下cookies、sessionStorage和localStorage的区别?时的应答技巧和注意事项,需要的朋友参考一下 特性 Cookie localStorage sessionStorage 数据的生命期 一般由服务器生成,可设置失效时间。如果在浏览器端生

  • 本文向大家介绍简述一下src与href的区别相关面试题,主要包含被问及简述一下src与href的区别时的应答技巧和注意事项,需要的朋友参考一下 href 是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超链接。 src是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和fr

  • 本文向大家介绍请说明一下@Controller和@RestController的区别是什么?相关面试题,主要包含被问及请说明一下@Controller和@RestController的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 考察点:spring 参考回答: @RestController注解相当于@ResponseBody + @Controller合在一起的作用