Spring Data JPA、MyBatis还有Hibernate有什么区别

0人阅读 评论(0) 收藏 举报
分类:

Spring Data JPA 可以理解为 JPA 规范的再次封装抽象,底层还是使用了 Hibernate 的 JPA 技术实现。要说差异,主要是比较的是 MyBatis 和 Hibernate。

性能考虑

由于 Hibernate 比 MyBatis 抽象封装的程度更高,理论上单个语句之心的性能会低一点(所有的框架都是一样,排除算法上的差异,越是底层,执行效率越高)。

但 Hibernate 会设置缓存,对于重复查询有一定的优化,而且从编码效率来说,Hibernate 的编码效果肯定是会高一点的。所以,从整体的角度来看性能的话,其实两者不能完全说谁胜谁劣。

从 ORM 角度考虑

Hibernate 是完备的 ORM 框架,是符合 JPA 规范的,但 MyBatis 不是。MyBatis 比单纯写 JDBC 肯定是方便一点,但无可避免还是要写SQL,且无法做到跨数据库 。Hibernate 使用 JPA 就可以无需考虑数据库的兼容性问题。

使用 Hibernate 的一个难点是,如何来设计对象之间的关系。如果是关系型数据库的话,表和表是通过外键来进行关联的。而在 ORM 中,则需要从面向对象的角度出发,来设计对象之间的关联关系。这个是需要思路上做一个转变的。

与 Spring 的集成角度考虑

Spring 以及 Spring Boot 官方都没有针对 MyBatis 有具体的支持,但对 Hibernate 的集成一直是有的。

但这并不表明 MyBatis 无法与 Spring Boot 集成,毕竟现在互联网企业,还是很流行使用MyBatis 和 Spring 。MyBatis 官方社区自身也是有 对 Spring \ Spring boot 集成做支持的,所以在技术上,两者都不存在问题。相关框架可以见 https://github.com/mybatis/spring 和https://github.com/mybatis/spring-boot-starter


作者: 老卫 
链接:https://www.imooc.com/article/19754?block_id=tuijian_wz
来源:慕课网
查看评论

ORM--------Hibernate、Mybatis与Spring Data的区别

1.概念: Hibernate :Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。着力点对象...
  • u011659172
  • u011659172
  • 2016-03-04 11:30:30
  • 13556

JPA Spring-Data-JPA hibernate mybatis

1 Hibernate与 MyBatis的比较:总结的比较全 http://blog.csdn.net/firejuly/article/details/8190229 2 SpringJPA 和 ...
  • wabiaozia
  • wabiaozia
  • 2017-06-01 20:00:29
  • 1706

spring data jpa hibernate jpa 三者之间的关系

JPA规范与ORM框架之间的关系是怎样的呢? JPA规范本质上就是一种ORM规范,注意不是ORM框架——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口,但具体实现则由...
  • Heng_Ji
  • Heng_Ji
  • 2017-05-22 10:36:06
  • 1038

Spring Data JPA 与 MyBatis简单对比

Spring Data JPA 与 MyBatis对比 Spring Data JPA是Spring Data的子模块。使用Spring Data,使得基于“repositories”概念的JPA实...
  • yunzhonmghe
  • yunzhonmghe
  • 2017-09-23 10:56:10
  • 3736

Hibernate和Spring data jpa的区别?

Hibernate是JPA实现,而Spring Data JPA是JPA数据访问抽象。 Spring Data提供了GenericDao自定义实现的解决方案。 它也可以通过方法名称约定代表您生成JPA...
  • wyy6713
  • wyy6713
  • 2017-04-07 17:40:33
  • 1035

Spring ORM+Hibernate?Out!换 Spring Data JPA 吧!

Spring Data JPA 的目标是通过让一些必须的工作变得更简单,来极大的提高数据访问层的实现效率。通常我们只需要姐访问方法,而 Spring 给你提供自动实现。! 在一切开始之前,先举个简单的...
  • anxpp
  • anxpp
  • 2016-05-15 06:56:49
  • 38132

JPA、Hibernate、Mybatis的区别

1.概念: Hibernate :Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。着力...
  • Captain249
  • Captain249
  • 2017-12-29 17:43:01
  • 329

spring data jpa-由mybatis切换

最近重构以前写的服务,最大的一个变动是将mybatis切换为spring data jpa,切换的原因很简单,有两点:第一、它是spring的子项目能够和spring boot很好的融合,没有xml文...
  • maoyeqiu
  • maoyeqiu
  • 2017-12-08 15:31:44
  • 781

Spring-data-jpa+Hibernate 各种缓存的配置

本文所有测试用代码在https://github.com/wwlleo0730/restjplat 的分支addDB上  目前在使用spring-data-jpa和hibernate4的时候,对...
  • he90227
  • he90227
  • 2015-06-09 13:53:49
  • 2836

通用mapper和mybatis-spring的关系以及与之相似的spring-data-jpa

通用mapper和mybatis-spring的关系以及与之相似的spring-data-jpa       整合东西到框架里面去就是集成框架的接口类之后进行复写:     public...
  • y666666y
  • y666666y
  • 2017-04-17 16:02:07
  • 591
    个人资料
    持之以恒
    等级:
    访问量: 3万+
    积分: 1019
    排名: 5万+
    最新评论