文档章节

MyBaits与Hibernate的区别

tinder_boy
 tinder_boy
发布于 2018/10/25 09:35
字数 565
阅读 28
收藏 1

相同点:都是持久层的框架,都用于dao层的开发。
不同点:
1.       hibernate对sql语句做了封装,使用HQL语句操作数据库。数据库无关性支持好,在项目需要支持多种数据库的情况下,代码开发量少,sql语句性能优化困难。
mybatis使用sql语句操作数据库,不支持数据库无关性,在项目需要支持多种数据库的情况下,代码开发量相对较多。sql语句性能优化容易。
2.       hibernate配置java对象,与数据库表的对应关系,多表的关联关系查询配置复杂。mybatis配置java对象,与sql语句执行结果的对应关系,多表的关联关系查询配置简单。

 

Mybatis优势

    MyBatis可以进行更为细致的SQL优化,可以减少查询字段。

    MyBatis容易掌握,而Hibernate门槛较高。

    MyBatis更加灵活,动态编写sql语句,提供xml标签,支持编写动态sql,解除sql与程序代码的耦合,容易上手方便后续开发团队的运维,适合需求变化频繁,大型项目,比如:互联网项目。

 

小巧、方便、高效、学习简单、半自动、移植性不好

 

 

Hibernate优势

    Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。适合需求稳定的中小型项目,比如:办公自动化系统,财务系统。

强大、方便、高效、学习复杂、全自动、移植性好

© 著作权归作者所有

tinder_boy
粉丝 0
博文 45
码字总数 109119
作品 0
广州
私信 提问
mybatisplus-spring-boot-starter 1.0.1 发布

mybatisplus-boot-starter 为 mybaits-plus 快速集成 spring-boot 简化配置而生,让您不在为对比 MyBatis 和 Hibernate 而烦恼 mybatis-plus 作为 mybatis 的好拍档补充了它的短板,让 myba...

青苗
2017/05/16
2.4K
4
mybatisplus-spring-boot-starter 1.0.2 发布,代号:清风

mybatisplus-boot-starter 为 mybaits-plus 快速集成 spring-boot 简化配置而生,让您不在为对比 myBatis 和 hibernate 而烦恼 mybatis-plus 作为 mybatis 的好拍档补充了它的短板,让 myba...

青苗
2017/06/26
1K
8
BySocket/nsg-dao

#nsg-dao DAO框架 version2.0.0 DAO 基础基础程序组件~   DAO框架封装了数据库访问操作,内置JDBC访问组件,MyBaits数据库操作以及Druid等连接池。   DAO框架是可扩展的。   (框架更新...

BySocket
2014/10/10
0
0
MiniDao_1.6-SNAPSHOT 版本发布,轻量级Java持久化框架

MiniDao-PE 简介 MiniDao-PE 是一种持久化解决方案,类似mybatis的持久层解决方案,可以轻松集成Hibernate工程,事务统一管理,解决了Hibernate工程想支持mybaits的功能问题。Hibernate的最佳...

Jeecg
2016/07/21
50
0
mybatisplus-spring-boot-starter 1.0.5 发布

mybatisplus-boot-starter 为 mybaits-plus 快速集成 spring-boot 简化配置而生,让您不在为选择 mybatis hibernate 比较而烦恼,mybatis-plus 作为 mybatis 的好拍档补充了它的短板,让 my...

青苗
2017/10/16
1K
12

没有更多内容

加载失败,请刷新页面

加载更多

Java 运行时获取方法参数名

本文整理 Java 运行时获取方法参数名的两种方法,Java 8 的最新的方法和 Java 8 之前的方法。 Java 8 的新特性 翻阅 Java 8 的新特性,可以看到有这么一条“JEP 118: Access to Parameter Na...

xiaomin0322
21分钟前
7
0
varchar和nvarchar有什么区别?

只是nvarchar支持多字节字符吗? 如果是这种情况,除了存储问题之外,使用varchars什么意义吗? #1楼 nVarchar将帮助您存储Unicode字符。 如果要存储本地化数据,这是可行的方法。 #2楼 nvar...

javail
24分钟前
5
0
如何通过curl调用使用HTTP请求发送标头?

我希望在Linux机器上向我的Apache服务器发送一个标头。 如何通过卷曲调用实现此目的? #1楼 得到: 使用JSON: curl -i -H "Accept: application/json" -H "Content-Type: application/json......

技术盛宴
40分钟前
5
0
SQL语句的执行过程

(一)架构组件 (二)执行流程

麦馍
45分钟前
6
0
如何快速核对Excel数据表?这样操作不同的数据一目了然

怎么快速的核对两个Excel数据表呢?组长给了同事两份报表让他在半小时内核对完毕,不同的地方要标记起来,这时候同事抱怨起来:“数据那么多半小时怎么够呢”?虽然嘴上在抱怨,但是他还是乖...

百因必有果
51分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部