iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
Mobile Development

Spring Boot & Android Studio教學系列 第 15

Repository實用指南:CRUD操作和自定義查詢

  • 分享至 

  • xImage
  •  

Repository提供了對數據庫的簡化訪問和操作方式,使您能夠執行常見的CRUD(創建、讀取、更新、刪除)操作以及自定義查詢。Repository接口的目的是為了幫助您更輕鬆地管理數據庫操作,而無需編寫大量的SQL查詢和數據存取代碼。

查詢所有記錄:

可以使用findAll()方法來查詢資料表中的所有記錄。例如:

List<Book> findAll();

根據ID查詢單個記錄:

可以使用findById()方法來根據主鍵ID查詢單個記錄。例如:

Optional<Book> findById(Long id);  

Optional主要用於處理可能為 null 的值,以減少 NullPointerException 的發生。

根據屬性查詢:

可以按照屬性的名稱來生成查詢方法,例如,如果你有一個title屬性,你可以使用findByTitle(String title)方法來查詢標題為指定值的記錄。

Optional<Book> findByTitle(String title);  

根據多個條件查詢:

你可以組合多個屬性來查詢,方法名稱中使用And、Or等關鍵字。例如,findByAuthorAndTitle(String author, String title)可以查詢指定作者和標題的記錄。

Optional<Book> findByAuthorAndTitle(String author, String title);  

模糊查詢:

你可以使用Like關鍵字來執行模糊查詢。例如,findByTitleContaining(String keyword)可以查詢標題中包含指定關鍵字的記錄。

Optional<Book> findByTitleContaining(String keyword);

計數查詢:

可以使用countBy前綴來執行計數查詢。例如,countByAuthor(String author)可以計算指定作者的記錄數。

long countByAuthor(String author);

刪除記錄:

你可以使用deleteBy前綴來刪除記錄。例如,deleteByTitle(String title)可以刪除標題等於指定值的記錄。

void deleteByTitle(String title)

自定義查詢方法:

除了預設方法外,你還可以使用@Query注解來定義自定義的JPQL(Java Persistence Query Language)或SQL查詢。
例如:定義了一個自定義查詢方法findUsersByUsername,並使用@Query指定了JPQL查詢,查詢名字為特定名字的使用者。

@Query("SELECT u FROM User u WHERE u.username = :username")
List<User> findUsersByUsername(@Param("username") String username);

上一篇
深入探討Spring Boot三層架構:建立高效的應用程式
下一篇
解密Spring Boot中的異常處理
系列文
Spring Boot & Android Studio教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言