在一些java面试当中,也许你经常会遇到这个问题,说一下mybatis和hibernate的区别,那么你是否可以回答出来呢?下面小编就对这个问题的答案做了以下的整理,一起来了解一下吧。
一、什么是Hibernate
首先我们来了解一下Hibernate
Hibernate其实就是一个开放源代码的对象关系映射框架,Hibernate对JDBC进行了非常轻量级的对象封装,建立对象和数据库表的映射。
Hibernate是一个完全面向对象、全自动的持久层框架。
二、什么是Mybatis
再来对Mybatis进行一下了解
Mybatis其实就是一个开源对象关系映射框架,Mybatis原来的名字叫做ibatis,在被谷歌接手之后,就从ibatis更名成了Mybatis。
Mybatis是一个半自动化的持久层框架。
三、mybatis和hibernate区别
那么mybatis和hibernate和之间有什么不同呢?我们可以大致的从以下四个方面来进行比较。
在项目开发的过程当中
1、开发
从速度方面来说
hibernate:sql语句已经被封装 ,是直接就可以使用的,加快系统开发
Mybatis:sql语句需要自己手动去完成,过程计较的复杂
2、 sql优化
从sql优化方面来说
Hibernate:自动的生成sql,有些语句会比较的繁琐,所以,会消耗一些性能
Mybatis:Mybatis是手动编写sql,能够避免一些不必要的查询,提高系统性能
3、对象管理
从对象管理方面来说
Hibernate:Hibernate它是完整的对象-关系映射的框架,在开发工程当中,只需要去管理对象,对于底层实现不需要进行过多的关注
Mybatis:Mybatis需要自行进行管理,映射关系
4、缓存
从缓存方面来说
Hibernate:Hibernate的二级缓存配置在SessionFactory生成的配置文件中进行详细配置。之后,再在具体的表-对象映射中配置是那种缓存。
MyBatis:MyBatis二级缓存配置都是在每个具体的表-对象映射中进行详细配置。除此之外,Mybatis能够在命名空间中共享相同的缓存配置和实例,通过Cache-ref来实现。
mybatis和hibernate的区别就给大家介绍到这里了,更多java常见问题,可以关注奇Q工具网的常见问题专栏了解。