hibernate与mybatis区别在哪?都有哪些优缺点?

作为老前辈之一,hibernate的声名广为人知,作为目前业界的新晋小花,mybatis的名字也是如雷贯耳,小伙伴们知道它们两个的区别在哪吗?它们又有哪些优缺点呢?这次,就让小编为你详细介绍介绍。

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来实现。

hibernate优缺点

优点:

1)、hibernate完全是全自动的,能够通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql。

2)、功能十分强大,数据库无关性好,ORM映射能力极强,编写代码少,开发速度快。

3)、有更好的二级缓存机制,能够使用第三方缓存。

4)、数据库移植性良好。

5)、hibernate拥有完整的日志系统,hibernate日志系统非常健全,涉及广泛,包括sql记录、关系异常、优化警告、缓存提示、脏数据警告等

缺点:

1)、hibernate拥有极高的学习门槛,想要精通就更是难上加难。

2)、hibernate的绝大多数sql语句都是自动生成的,无法直接维护。

Mybatis优缺点

优点:

1)、上手简单快捷,提供了数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美。

2)、sql语句统一在xml里,便于统一管理和优化, 解除了sql与程序代码的耦合。

3)、提供了关系映射标签,支持对象与数据库的ORM字段关系映射

4)、提供了对象关系映射标签,支持对象关系组建维护

5)、提供xml标签,支持编写动态sql

6)、速度相于Hibernate较快

缺点:

1)、关联表多及字段数量大时,sql工作量会让你崩溃。

2)、sql极度依赖数据库,移植性极差。

3)、因为xml里标签id是必须唯一的,所以DAO中方法不支持方法重载。

4)、对象关系映射标签和字段映射标签仅仅是对映射关系的描述,具体实现仍然依赖于sql。

5)、DAO层过于简单,对象组装的工作量较大。

6)、级联更新、级联删除不支持。

以上就是本篇文章的所有了,你对它们两个的区别和优缺点有深刻理解了吗?还需要了解更多java常见问题及解决方法的话,请持续关注本网站了解详情。

推荐阅读:

hibernate还有人用吗?hibernate框架介绍

hibernate菜鸟教程,入门即上手

怎么操作hibernate?Hibernate入门教程