翻譯|使用教程|編輯:鮑佳佳|2021-06-25 10:28:23.307|閱讀 174 次
概述:本文主要講解Java基礎(chǔ)教程如何使用Intellij idea創(chuàng)建員工實體、存儲庫接口等,我們需要一種方法來執(zhí)行我們的CRUD(創(chuàng)建、讀取、更新、刪除)操作。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Java開發(fā)工具:點擊下載IntelliJ IDE最新版
上一節(jié)我們講了如何創(chuàng)建員工實體!現(xiàn)在我們已經(jīng)創(chuàng)建了Employee實體,我們需要一種方法來執(zhí)行我們的CRUD(創(chuàng)建、讀取、更新、刪除)操作。幸運的是,Spring Data JPA通過Repositories提供了所有的基本操作。讓我們看看它們是如何工作的。
在項目窗口中,我們將選擇com.jetbrains.springdatajpaapp包,Windows/Linux下按Alt+Insert,macOS下按?N。選擇Java類。我們把它叫做EmployeeRepository,這次我們選擇接口,然后按回車鍵。為了使我們的接口成為一個庫,我們需要它擴展CrudRespository<T, ID>接口,通用參數(shù)是我們的實體類和實體的id類型。所以對于我們的應(yīng)用程序,我們的存儲庫接口定義為:public interface EmployeeRepository extends CrudRepository<Employee, Long>。
我們將使用這個EmployeeRepository接口在我們的應(yīng)用程序代碼中執(zhí)行CRUD操作。由于我們擴展了CrudRepository,我們可以默認獲得基本的CRUD方法。例如,我們可以調(diào)用save方法將一個Employee對象插入我們的數(shù)據(jù)庫中。我們還可以調(diào)用findAll方法來列出雇員表中的所有雇員。當(dāng)我們編寫應(yīng)用邏輯時,我們將看到如何做到這一點。
在大多數(shù)應(yīng)用程序中,你會發(fā)現(xiàn)自己想要做的事情比CrudRepository接口默認提供的要多。例如,假設(shè)我們想找到所有姓氏中有空格的員工。你當(dāng)然可以寫一個SQL查詢來做到這一點。然而,更簡單的方法是利用Spring Data JPA的優(yōu)勢,它允許你在存儲庫中創(chuàng)建方法,這些方法將根據(jù)你的方法名稱被翻譯成查詢。
例如,假設(shè)我們想添加一個方法,用于查找所有姓氏中有某個字符串的員工。我們將進入EmployeeRepository接口,開始聲明我們的方法。我的方法將返回一個雇員的列表,所以我們將使用List<Employee>作為我們的返回類型。然后,我們需要指定一個方法名,它有兩個部分:介紹者和標準。我們可以在IntelliJ IDEA中使用Ctrl+Space來查看介紹者的方法建議列表。
選擇findEmployeesBy。然后,我們將再次點擊Ctrl+Space,查看可供選擇的標準列表。
我們將選擇LastNameContaining. 最后,我們將聲明一個 String 方法參數(shù),表示我們要檢查的字符串。我們現(xiàn)在有一個方法來查找姓氏包含所提供字符串的所有員工。
你可能會想:如果我已經(jīng)定義了這個接口,我就不需要實現(xiàn)它嗎?答案是不。Spring Data JPA 會為您處理這些!您需要做的就是定義您的 Repository 接口并按照 Spring Data 約定聲明您的方法。隨著您添加更多方法,如果您在方法名稱中出錯,IntelliJ IDEA 會指出。例如,如果我們嘗試創(chuàng)建一個方法來查詢具有不正確LName屬性的員工,IntelliJ IDEA 會給我們一個錯誤提示Cannot resolve property LName。
您的EmployeeRepository界面應(yīng)如下所示:
package com.jetbrains.springdatajpaapp; import org.springframework.data.repository.CrudRepository; import java.util.List; public interface EmployeeRepository extends CrudRepository<Employee, Long> { List<Employee> findEmployeesByLastNameContaining(String str); }
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: