开发者学堂课程【SpringBoot快速掌握 - 核心技术:SpringData JPA 简介】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/612/detail/9278
SpringData JPA 简介
一、SpringData 简介
Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问技术,包括非关系数据库、 Map-Reduce 框架、云数据服务等等;另外也包含对关系数据库的访问支持。
Spring Data包含多个子项目:
- Spring Data Commons
- Spring Data JPA
- Spring Data KeyValue Repository
- Spring Data LDAP Support
- Spring Data MongoDB
- Spring Data Gemfire
- Spring Data REST Obiect
- Spring Data Redis Tempiates Mapping
- Spring Data for Apache Cassandra
- Spring Data for Apache Solr
- Spring Data Couchbase (community module)
- Spring Data Elasticsearch(community module)
- Spring Data Neo4j(community module)
1、SpringData特点
SpringData提供使用统一的API来对数据访问层进行操作;这主要是Spring DataCommons项目来实现的。Spring Data Commons在使用关系型或者非关系型数据访问技术时都基于Spring提供的统一标准,标准包含了CRUD(创建、获取、更新、删除)、查询、排序和分页的相关操作。
2、统一的Repository接口
Repository<T, ID extends Serializable>:统一接口
RevisionRepository<T, ID extends Serializable, N extends Number & Comparable<N>>:基于乐观锁机制
CrudRepository<T,ID extends Serializable>:基本 CRUD 操作
PagingAndSortingRepository<T, ID extends Serializable>:基本CRUD及分页
Repository (org.springframework.data.repository)
RevisionRepository(org.springframework.data.repository.history)
CrudRepository (org.springframework.data.repository)
PagingAndSortingRepository (org,springframework.data,reposit
JpaRepository(org.springframework.data.jpa.repository)
3、提供数据访问模板类 xxxTemplate;
如: MongoTemplate、RedisTemplate 等
4、JPA 与 Spring Data
1)、JpaRepository 基本功能
编写接口继承 JpaRepository 既有 crud 及分页等基本功能
定义符合规范的方法命名
在接口中只需要声明符合规范的方法,即拥有对应的功能
Keyword |
Sample |
JPOL snippet |
And |
findByLastnaneAndFirstname |
_ where x.lastDate =?1 and x.lastname = ?2 |
or |
findByLastnaneOrFirstname |
_ where x.lastname =?1 or x.firstnase = ?2 |
Between |
findByStartDate Between |
_ where x.startDate between 1? and ?2 |
3.@Query 自定义查询,定制查询 SQL
4.Specifications 查询( Spring Data JPA 支持 JPA2.0 的 Criteria 查询)
5.流程图