快捷搜索:  汽车  科技

mybatis和hibernate是什么:Hibernate和MyBatis谁主沉浮

mybatis和hibernate是什么:Hibernate和MyBatis谁主沉浮使用场景: 没有内置的缓存,分页机制(使用最大记录进行查询实际上会进行全表扫描) 适合编写纯sql(存储的proc,包括的函数,复杂的查询) 缺点: SQL可能需要绑定到指定的数据库

学过JAVA的程序员一定都使用过Hibernate和MyBatis,或者至少听过他们的大名。那么到底Hibernate好还是MyBatis更好呢。事实是没有万能的钥匙。他们两个各有利弊,你只有发挥他们的优势,摒弃他们的缺点,才能游刃有余地使用他们。下面,我们就来看看他们有什么相同和区别。

mybatis和hibernate是什么:Hibernate和MyBatis谁主沉浮(1)

MyBatis

它主要是以数据库为中心的数据映射器。它可以将结果集映射到对象,可以使用简单的 XML 或注解来配置和映射原生信息。

优点:

简单和更快的开发

适合编写纯sql(存储的proc,包括的函数,复杂的查询)

缺点:

SQL可能需要绑定到指定的数据库

没有内置的缓存,分页机制(使用最大记录进行查询实际上会进行全表扫描)

使用场景:

需要完全控制SQL时使用,特别是当您对SQL有充分的了解时。

数据模型与对象模型不完全匹配,或者会随着时间的变化而变得复杂。

mybatis和hibernate是什么:Hibernate和MyBatis谁主沉浮(2)

Hibernate

mybatis和hibernate是什么:Hibernate和MyBatis谁主沉浮(3)

它主要是一个以对象为中心的对象关系映射器。换句话说,它只需花费很少的精力就可以将您的对象模型映射到数据库表(对象模型与数据模型同步)。

优点:

它没有侵入性,即所谓的轻量级框架。

移植性会很好。

缓存机制。提供一级缓存和二级缓存。

简洁的HQL编程。

缺点:

通常需要进行微调,会话很难正确完成

Hibernate在批量数据处理的时候是有弱势

学习成本高,很复杂

使用场景:

当数据对象映射同步并且您完全控制db时使用。

不想编写SQL,或者讨厌重复的SQL语句时。

mybatis和hibernate是什么:Hibernate和MyBatis谁主沉浮(4)

猜您喜欢: