真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringDataJPA簡(jiǎn)單查詢-創(chuàng)新互聯(lián)

一、接口方法整理速查

站在用戶的角度思考問題,與客戶深入溝通,找到東海網(wǎng)站設(shè)計(jì)與東海網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋東海地區(qū)。

  下表針對(duì)于簡(jiǎn)單查詢,即JpaRepository接口(繼承了CrudRepository接口、PagingAndSortingRepository接口)中的可訪問方法進(jìn)行整理。(1)先按照功能進(jìn)行分類整理,分為保存、刪除、查找單個(gè)、查找多個(gè)、其他5類。(2)再將不建議使用的方法置灰,此類方法多為CrudRepository接口、PagingAndSortingRepository接口中定義,后來JpaRepository接口中又定義了替代方法,更方便使用,比如:查找多個(gè)對(duì)象時(shí),返回 List 比返回 Iterable 更容易處理。

Spring Data JPA 簡(jiǎn)單查詢

二、五個(gè)接口詳解

1、CrudRepository接口。

其中T是要操作的實(shí)體類,ID是實(shí)體類主鍵的類型。該接口提供了11個(gè)常用操作方法。

Spring Data JPA 簡(jiǎn)單查詢

@NoRepositoryBean  
public interface CrudRepository extends Repository { 

     S save(S entity);//保存  
     Iterable save(Iterable entities);//批量保存  

    T findOne(ID id);//根據(jù)id 查詢一個(gè)對(duì)象。返回對(duì)象本身,當(dāng)對(duì)象不存在時(shí),返回null   
    Iterable findAll();//查詢所有的對(duì)象  
    Iterable findAll(Iterable ids);//根據(jù)id列表 查詢所有的對(duì)象  

    boolean exists(ID id);//根據(jù)id 判斷對(duì)象是否存在 
    long count();//計(jì)算對(duì)象的總個(gè)數(shù)  

    void delete(ID id);//根據(jù)id 刪除  
    void delete(T entity);//刪除一個(gè)對(duì)象 
    void delete(Iterable entities);//批量刪除,集合對(duì)象(后臺(tái)執(zhí)行時(shí),一條一條刪除)
    void deleteAll();//刪除所有 (后臺(tái)執(zhí)行時(shí),一條一條刪除)}

Spring Data JPA 簡(jiǎn)單查詢

2、PagingAndSortingRepository接口。

該接口繼承了CrudRepository接口,提供了兩個(gè)方法,實(shí)現(xiàn)了分頁和排序的功能了。

Spring Data JPA 簡(jiǎn)單查詢

@NoRepositoryBean      CrudRepository {  

    Iterable findAll(Sort sort);
    Page findAll(Pageable pageable);}

Spring Data JPA 簡(jiǎn)單查詢

3、JpaRepository接口。

該接口繼承了PagingAndSortingRepository接口。

同時(shí)也繼承QueryByExampleExecutor接口,這是個(gè)用“實(shí)例”進(jìn)行查詢的接口,后續(xù)再寫文章詳細(xì)說明。

Spring Data JPA 簡(jiǎn)單查詢

@NoRepositoryBeanpublic interface JpaRepository        extends PagingAndSortingRepository, QueryByExampleExecutor {
    
    List findAll(); //查詢所有對(duì)象,返回List
    List findAll(Sort sort); //查詢所有對(duì)象,并排序,返回List
    List findAll(Iterable ids); //根據(jù)id列表 查詢所有的對(duì)象,返回List

    void flush(); //強(qiáng)制緩存與數(shù)據(jù)庫同步 

     List save(Iterable entities); //批量保存,并返回對(duì)象List
     S saveAndFlush(S entity); //保存并強(qiáng)制同步數(shù)據(jù)庫

    void deleteInBatch(Iterable entities); //批量刪除 集合對(duì)象(后臺(tái)執(zhí)行時(shí),生成一條語句執(zhí)行,用多個(gè)or條件)
    void deleteAllInBatch();//刪除所有 (執(zhí)行一條語句,如:delete from user)

    T getOne(ID id); //根據(jù)id 查詢一個(gè)對(duì)象,返回對(duì)象的引用(區(qū)別于findOne)。當(dāng)對(duì)象不存時(shí),返回引用不是null,但各個(gè)屬性值是null
    
    @Override
     List findAll(Example example); //根據(jù)實(shí)例查詢
    @Override
     List findAll(Example example, Sort sort);//根據(jù)實(shí)例查詢,并排序。}

Spring Data JPA 簡(jiǎn)單查詢

 幾點(diǎn)說明:

(1)幾個(gè)查詢、及批量保存方法,和 CrudRepository 接口相比,返回的是 List,使用起來更方便。

(2)增加了 InBatch 刪除, 實(shí)際執(zhí)行時(shí),后臺(tái)生成一條sql語句,效率更高些。相比較而言,CrudRepository 接口的刪除方法,都是一條一條刪除的,即便是 deleteAll 也是一條一條刪除的。

(3)增加了 getOne() 方法,切記,該方法返回的是對(duì)象引用,當(dāng)查詢的對(duì)象不存在時(shí),它的值不是Null。

4、JpaSpecificationExecutor接口
該接口提供了對(duì)JPA Criteria查詢(動(dòng)態(tài)查詢)的支持。這個(gè)接口很有用,具體不粘源碼了。

5、Repository接口
這個(gè)接口是最基礎(chǔ)的接口,只是一個(gè)標(biāo)志性的接口,沒有定義任何的方法,那這個(gè)接口有什么用了?既然Spring data JPA提供了這個(gè)接口,自然是有它的用處,例如,我們有一部分方法是不想對(duì)外提供的,比如我們只想提供增加和修改方法,不提供刪除方法,那么前面的幾個(gè)接口都是做不到的,這個(gè)時(shí)候,我們就可以繼承這個(gè)接口,然后將CrudRepository接口里面相應(yīng)的方法拷貝到Repository接口就可以了。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


文章名稱:SpringDataJPA簡(jiǎn)單查詢-創(chuàng)新互聯(lián)
分享鏈接:http://weahome.cn/article/gpess.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部