Hibernate、JPA、SpringDataJPA 介绍

Hibernate、JPA、SpringDataJPA 介绍

在Java开发中,我们会用到很多与数据库交互的框架,常见的为ORM框架, 下面介绍一下Hibernate、JPA、SpringDataJPA 这几种框架/技术

ORM

ORM(Object-Relational Mapping) 表示对象关系映射。在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中。

当实现一个应用程序时(不使用O/R Mapping),我们可能会写特别多数据访问层的代码,从数据库保存数据、修改数据、删除数据,而这些代码都是重复的。而使用ORM则会大大减少重复性代码。对象关系映射(Object Relational Mapping,简称ORM),主要实现程序对象到关系数据库数据的映射。

只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直接操作数据库数据,就可以说这套程序实现了ORM对象关系映射

简单的说:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作数据库表的目的。

常见ORM框架

常见的 ORM 框架:Mybatis(ibatis)HibernateJpa

Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库

JPA

JPA的全称是 Java Persistence API, 即 Java 持久化API,是SUN公司推出的一套基于ORM的规范,内部是由一系列的接口和抽象类构成,通过JDK 5.0注解描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中

SpringDataJPA

Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展,学习并使用 Spring Data JPA 可以极大提高开发效率!

Spring Data JPA 让我们解脱了DAO层的操作,基本上所有CRUD都可以依赖于它来实现,在实际的工作工程中,推荐使用 Spring Data JPA + ORM(如:hibernate)完成操作,这样在切换不同的 ORM 框架时提供了极大的方便,同时也使数据库层操作更加简单,方便解耦

JPA 与 Hibernate的关系

JPA规范本质上就是一种ORM规范(注意不是ORM框架)——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口,但具体实现则由服务厂商来提供实现。
请添加图片描述

说明:

  • JPA 和 Hibernate的关系就像 JDBC 和 JDBC驱动 的关系。JPA是规范,Hibernate除了作为ORM框架之外,它也是一种JPA实现。也就是说,如果使用JPA规范进行数据库操作,底层需要hibernate作为其实现类完成数据持久化工作。

Spring Data JPA 与 JPA 和 Hibernate 之间的关系

  • JPA是一套规范,内部是有 接口 和 抽象类 组成的
  • hibernate是一套成熟的ORM框架,而且Hibernate实现了JPA规范,所以也可以称 hibernate 为JPA的一种实现方式,我们使用JPA的API编程,意味着站在更高的角度上看待问题(面向接口编程)
  • Spring Data JPA 是Spring提供的一套对JPA操作更加高级的封装,是在JPA规范下的专门用来进行数据持久化的解决方案

总结

在实际开发中,我们一般使用 Spring Data JPA + ORM(如:hibernate)这种形式完成数据持久化,这篇仅仅介绍三者,后续的博客来介绍一下 如何使用 与 相应的原理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值