一、概念
1、什么是Spring Data
Spring Data的目的是为了简化构建基于Spring框架应用的数据访问
其包括了非关系数据库 Map-Reduce 框架 云数据服务等等 另外也包含对关系数据库的访问支持
Spring Data的下面有很多子项目:
– Spring Data Commons
– Spring Data JPA
– Spring Data KeyValue
– Spring Data LDAP
– Spring Data MongoDB
– Spring Data Gemfire
– Spring Data REST
– Spring Data Redis
– 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)
SpringData提供了使用统一的API来对数据访问层进行操作
主要是由Spring Data Commons项目来实现的
Spring Data Commons在使用关系型或者非关系型数据访问技术时都基于Spring提供的统一标准
该标准包含了CRUD(创建 获取 更新 删除) 查询 排序和分页的相关操作
Spring Data提供了一些统一的Repository接口
这些接口具有增删改查功能 分页功能 及乐观锁机制的功能
CrudRepository<T, ID extends Serializable> :基本CRUD操作
PagingAndSortingRepository<T, ID extends Serializable> :基本CRUD及分页
RevisionRepository<T, ID extends Serializable, N extends Number & Comparable<N>> :乐观锁机制
只须用自己写的接口来继承这些自带的接口 即可具有相应的功能 无须关心其具体实现
Spring Data还提供了数据访问的模板类Template
例如RedisTemplate MongoTemplate等
因此 有了Spring Data 就相当于是"面向SpringData编程"
2、什么是JPA
JPA并不是一个框架 而是一种J2EE的规范:Java Persistence API
该规范也称为JSR规范
JSR是Java Specification Requests的缩写 意为Java规范提案
该规范 有很多的实现 例如著名的Hibernate
还有Toplink OpenJPA等等
总而言之 Spring Data就是相当于对这些框架的的再封装
Spring Data的底层默认使用的是Hibernate
二、SpringBoot整合JPA
首先 创建项目
若是用SpringBoot Initializer向导来创建的 须添加Spring Data JPA
若是手动创建 则需引入依赖:
<dependency<