mybatis和hibernate的区别是什么?有什么区别?

KLQ 2020-04-24 10:05:41 java常见问答 10136

在一些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工具网的常见问题专栏了解。