javascript
Spring Boot————Spring Data JPA简介
引言
JPA是Java 持久化API的縮寫,是一套Java數(shù)據(jù)持久化的規(guī)范,
Spring Data
Spring Data項目的目的是為了簡化構(gòu)建基于Spring 框架應(yīng)用的數(shù)據(jù)訪問技術(shù),包括對關(guān)系型數(shù)據(jù)庫的訪問支持。另外也包含非關(guān)系型數(shù)據(jù)庫、Map-Reduce框架、云數(shù)據(jù)服務(wù)等等。
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 Elasticseach (community module)
Spring Data Neo4j (community module)
Spring Data 的特點
Spring Data的宗旨就是統(tǒng)一數(shù)據(jù)訪問的API。?所以它為我們提供使用統(tǒng)一的API來對數(shù)據(jù)訪問層進(jìn)行操作;這主要是Spring Data Commons項目來實現(xiàn)的。Spring Data Commons讓我們在使用關(guān)系型或非關(guān)系型數(shù)據(jù)訪問技術(shù)時都基于Spring 提供的統(tǒng)一標(biāo)準(zhǔn),標(biāo)準(zhǔn)包括CRUD、排序和分頁的相關(guān)操作。
統(tǒng)一的Repository接口
Repository<T, ID extends Serializable>:統(tǒng)一接口
RevisionRepository<T, ID extends Serializable, N extends Number & Comparable<N>>:基于樂觀鎖機制
CrudRepository<T, ID extends Serializable> : 基本CRUD操作
PagingAndSortingRepository<T, ID extends Serializable>:基本CRUD及分頁
數(shù)據(jù)訪問模板類
如:MongoTemplate、RedisTemplate等
Spring Data JPA
1、JpaRepository基本功能
編寫接口繼承JpaRepository既有crud及分頁等基本功能
2、定義符合規(guī)范的方法命名
在接口中只需要聲明符合規(guī)范的方法,即擁有對應(yīng)的功能:
interface PersonRepository extends Repository<User, Long> {List<Person> findByEmailAddressAndLastname(EmailAddress emailAddress, String lastname);// Enables the distinct flag for the queryList<Person> findDistinctPeopleByLastnameOrFirstname(String lastname, String firstname);List<Person> findPeopleDistinctByLastnameOrFirstname(String lastname, String firstname);// Enabling ignoring case for an individual propertyList<Person> findByLastnameIgnoreCase(String lastname);// Enabling ignoring case for all suitable propertiesList<Person> findByLastnameAndFirstnameAllIgnoreCase(String lastname, String firstname);// Enabling static ORDER BY for a queryList<Person> findByLastnameOrderByFirstnameAsc(String lastname);List<Person> findByLastnameOrderByFirstnameDesc(String lastname); }3、@Query自定義查詢,定制查詢SQL
4、 Specification查詢(Spring Data JPA支持JPA2.0的Criteria查詢)
Spring Data結(jié)構(gòu)圖
來看一下Spring Data JPA相互間的結(jié)構(gòu)關(guān)系:
可以看到,Spring Data JPA是針對于JPA規(guī)范開發(fā)的一套上層統(tǒng)一接口。它的實現(xiàn)有Hibernate、Toplink、OpenJPA等,因此,只要掌握了Spring Data JPA中數(shù)據(jù)訪問用法,在實際生產(chǎn)中選擇要實現(xiàn)的底層框架,就可以省去時間學(xué)習(xí)五花八門的實際數(shù)據(jù)訪問框架,節(jié)約了學(xué)習(xí)成本。
綜上,就是關(guān)于Spring Data? JPA的相關(guān)介紹。
總結(jié)
以上是生活随笔為你收集整理的Spring Boot————Spring Data JPA简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Boot 设置 ASCII
- 下一篇: Spring Boot——@Config