Hibernate概述
- Hibernate是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,它将 POJO 与数据库表建立映射关系,是一个全自动的 ORM 框架,Hibernate 可以自动生成 SQL 语句,自动执行,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库
JPA概述
- JPA是Java Persistence API的简称,中文名:Java持久层API,是JDK 5.0注解或XML描述对象—关系表的映射关系,并将运行期的实体对象持久化到数据库中
SpringDataJPA概述
- SpirngDataJPA 是 Spring 提供的一套简化 JPA 开发的框架,按照约定好的方法命名规则写 dao 层接口,就可以在不写接口实现的情况下,实现对数据库的访问和操作。除了 CRUD 的功能外,同时提供了很多如分页、排序、复杂查询等等的功能
SpringDataJPA运行原理
- Spring Data JPA 是SUN公司推出的一套接口,一套标准,Hibernate是一个具体的ORM的持久层框架(类似于Mybatis框架)实现了JPA接口
- Spring Data是Spring开发团队提供的一套标准API和不同持久层整合技术实现。Spring Data的出现就
是为了简化、统一持久层的各种实现技术API
(注:Spring Data在项目里以spring-data-commons这个jar存在 ) - Spring Data JPA既实现了Spring Data接口又实现了JPA接口,也是为了简化持久层的开发
SpringDataJPA优点
- 提供统一的接口,可避免我们再次重复编写基础的DAO类
- 遵循JPA规范,同时也提供了灵活的数据访问方式;
- 通过方法名即可自动生成HQL语句;
- 通过接口自动注入实现类,实现非常简单
三者的关系
SpringDataJPA、JPA 和 Hibernate 三者的关系如下图:
JPA 是一套规范,内部是由接口和抽象类组成的。Hibernate 是一套成熟的 ORM 框架,而且 Hibernate 实
现了 JPA 的规范,所以也可以称 Hibernate 为 JPA 的一种实现方式。Spring Data JPA 是 Spring 提供的一套对 JPA 操作更加高级的封装,是在 JPA 规范下的专门用来进行数据持久化的解决方案