簡介
Spring Data是什么?
Spring Data是一個用于簡化數(shù)據(jù)庫訪問硼瓣,并支持云服務(wù)的開源框架究飞。其主要目標是使得對數(shù)據(jù)的訪問變得方便快捷
Spring Data JPA能干什么?
Spring Data JPA: 致力于減少數(shù)據(jù)訪問層(DAO)的開發(fā)量堂鲤。開發(fā)者唯一要做的亿傅,就只是聲明持久層的接口,其他都交給Spring Data JPA 來幫你完成瘟栖!可以極大的簡化JPA的寫法葵擎,可以在幾乎不用寫實現(xiàn)的情況下,實現(xiàn)對數(shù)據(jù)的訪問和操作慢宗。除了CRUD外坪蚁,還包括如分頁、排序等一些常用的功能镜沽。
框架怎么可能代替開發(fā)者實現(xiàn)業(yè)務(wù)邏輯呢敏晤?比如:當有一個UserDao.findUserById()這樣一個方法聲明,大致應(yīng)該能判斷出這是根據(jù)給定條件的ID查詢出滿足條件的User對象缅茉。Spring Data JPA 做的便是規(guī)范方法的名字嘴脾,根據(jù)符合規(guī)范的名字來確定方法需要實現(xiàn)什么樣的邏輯。
Spring Data JPA 有什么?
主要來看看Spring Data JPA提供的接口译打,也是Spring Data JPA的核心概念:
1:Repository:最頂層的接口耗拓,是一個空的接口,目的是為了統(tǒng)一所有Repository的類型奏司,且能讓組件掃描的時候自動識別乔询。
2:CrudRepository :是Repository的子接口,提供CRUD的功能
3:PagingAndSortingRepository:是CrudRepository的子接口韵洋,添加分頁和排序的功能
4:JpaRepository:是PagingAndSortingRepository的子接口竿刁,增加了一些實用的功能,比如:批量操作等搪缨。
5:JpaSpecificationExecutor:用來做負責(zé)查詢的接口
6:Specification:是Spring Data JPA提供的一個查詢規(guī)范食拜,要做復(fù)雜的查詢,只需圍繞這個規(guī)范來設(shè)置查詢條件即可
特征
強大的存儲庫和自定義對象映射抽象
從存儲庫方法名稱中進行動態(tài)查詢導(dǎo)出
實現(xiàn)域基類提供基本屬性
支持透明審核(創(chuàng)建副编,最后更改)
集成自定義存儲庫代碼的可能性
Easy Spring通過JavaConfig和自定義XML命名空間進行集成
與Spring MVC控制器進行高級集成
跨店存儲的實驗支持