一、Spring Data JPA概述
1.1 什么是JPA?
JPA(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范(JSR 338,这些接口所在包为javax.persistence
JPA的出现主要是为了简化持久层开发以及整合ORM技术,结束Hibernate、TopLink、JDO等ORM框架各自为营的局面。JPA是在吸收现有ORM框架的基础上发展而来,易于使用,伸缩性强。
常见的Hibernate是JPA的一个实现,但是其功能是JPA的超集(比JPA更强大)。JPA和Hibernate之间的关系,可以简单的理解为JPA是标准接口,Hibernate是实现。JPA包括以下3方面的技术:
ORM映射元数据: 支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系
API: 操作实体对象来执行CRUD操作
查询语言: 通过面向对象而非面向数据库的查询语言(JPQL)查询数据,避免程序的SQL语句紧密耦合
1.2 Spring Data JPA是什么?
它是 Spring 基于 ORM 框架、Jpa 规范的基础上封装的一套 Jpa 应用框架,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data Jpa 可以极大提高开发效率!
二、Spring Data JPA有什么?
主要看Spring Data JPA提供的编程接口
Repository:最顶层的接口,是一个空接口,目的是为了统一所有的Repository的类型,且能让组件扫描的时候自动识别。
CrudRepository:Repository的子接口,提供了CRUD(增删改产)的功能。
PagingAndSortingRepository:CrudRepository的子接口,添加分页排序的功能。
JpaRepository:PagingAndSortingRepository的子接口,增加批量操作等功能
JpaSpecificationExecutor:用来做复杂查询的接口
接口继承关系图