- Spring Data是爲了簡化構建基於Spring框架應用的數據庫訪問技術的一個項目,支持關係數據庫、非關係型數據庫、Map-Reduce框架和雲數據服務等。Spring Data包含多個子項目,如下:
- Spring Data爲我們使用統一的API來對數據訪問層進行操作,這主要是Spring Data Common項目來實現。Spring Data Commons讓我們在使用關係型或非關係型數據訪問技術時都基於Spring提供的統一標準,標準包含CRUD、查詢、排序和分頁的相關操作。這些操作統一由Repository相關的接口來定義:
- 基本接口Repository
- 基於樂觀鎖機制操作的接口:RevisionRepository
- 基於CURD操作的接口:CrudRepository
- 基於CRUD、分頁和排序操作的接口:PagingAndSortingRepository
-
Spring Data 與 Spring Data JPA的關係:
-
Spring Data JPA實現了Spring Data定義的相關接口,所以應用程序只需調用這些接口就能使用Spring Data子項目(Spring Data JPA和其他項目)實現的功能。估計底層設計多態的運用是其核心。
-
JPA是Java Persistence API的縮寫,它是由Java EE所定義的一個規範;該規範被一些框架所實現了,例如Hibernate。
-
說起這些操作數據庫的框架,ORM(Object Relation Mapping)的概念不得不說。
- ORM出現的背景:Applications need to save data to persistent storage. Persistent storage can be database, directory service, or other. For O-O programming, we’d like to save and retrieve objects to/from storage. Therefore, the concept of ORM is generated.
- 數據庫的設計與程序的面向對象設計有着本質上的相似,爲了使操作數據庫也面向對象(使用過JDBC操作數據,就能發現一旦業務需求過多,SQL代碼也會相應的多了、複雜了起來,並且代碼管理也顯得非常冗餘。)一些數據庫操作框架被髮明瞭。這些框架相當於應用和數據庫之間的中間層,中間層能屏蔽數據庫操作的複雜性;如果業務需求繁多,中間層的使用也能提高代碼的複用性和易管理性。
- 中間層的設計並不簡單,其中涉及到比較多的設計層面的問題,有興趣的小夥伴可以查閱資料去了解。這裏講到的JPA就是Java語言對於ORM中間層的規範。