Spring Data简介

Spring Data 项目的目的是为了简化构建基于Spring框架应用的数据访问技术,包括关系型数据库、非关系型数据库、Map-Reduce框架、云数据服务等。
官网地址:https://spring.io/projects/spring-data
image.png

Spring Data特点

Spring Data为我们提供使用统一的API来对数据访问层进行操作;这主要是Spring Data Commons模块来实现的。Spring Data Commons让我们在使用关系型或者非关系型数据访问技术时都基于Spring提供的统一标准,标准包含了CRUD、排序和分页的相关操作。

统一的Repository接口
Repository<T, ID extends Serializable>:统一的顶层父接口
RevisionRepository<T, ID extends Serializable, N extends Number & Comparable<N>>:基于乐观锁机制
CurdRepository<T, ID extends Serializable>:提供基本的CRUD操作
PagingAndSortingRepository<T, ID extends Serializable>:提供基本的排序及分页操作
image.png
提供数据访问模板类(xxxxTemplate)
例如:MongoTemplate、RedisTemplate等。

JPA与Spring Data

image.png
1、JpaRepository基本功能
编写接口继承JpaRepository既有CRUD及分页等功能。

2、定义符合规范的方法名称
在接口中只需要声明符合规范的方法,即拥有对应的功能。
image.png
参考地址:
https://docs.spring.io/spring-data/jpa/docs/2.5.0/reference/html/#repositories.query-methods.details
https://docs.spring.io/spring-data/jpa/docs/2.5.0/reference/html/#appendix.query.method.subject

3、@Query自定义查询、定制查询SQL

4、Specification查询(Spring Data JPA支持JPA2.0的Criteria查询)