搜尋

在Java Spring框架中,通常使用基於JPA的儲存庫。這些儲存庫對於管理資料庫操作至關重要,並且是 Spring Data JPA 模組的一部分。儲存庫定義了一種新的優雅方法,用於儲存、更新和提取後端 JAVA 應用程式儲存的資料。所有 CRUD(建立、讀取、更新和刪除)操作都可以藉助儲存庫介面來實現。 JPA是JAVA Persistence API(應用程式介面)的縮寫。顧名思義,JPA 有助於將 java 物件持久保存在關聯式資料庫中。有兩種方法可以做到這一點,它們是:

廣告 該類別中的熱門課程 JAVA 掌握 - 專業化 | 78 課程系列 | 15 次模擬測驗

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

  1. 關係表使用映射類別對應到子系統。
  2. EntityManager API。

在本文中,我們將了解語法以及 JPA 儲存庫在 CRUD 操作中的使用。

文法:

匯入所有必要的程式庫並將其連結到專案類別路徑中的 Spring、Persistence 物件和 Java EE 後,下一步就是透過擴充「JpaRepository」介面來建立介面。這是儲存庫庫的擴展,包含其他儲存庫,如 CrudRepository 和 PagingAndSortingRepository,以及儲存庫的基本功能。

注意: POM.XML 應該存在於您的專案中才能使用 JPA 應用程式。

結構:

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import net.guides.springboot.jparepository.model.Employee;
@Repository
public interface repositoryname extends JpaRepository<parameter column name parameter data type>
{
}
//Invocation of the interface created above.
private repositoryname RepositoryName;
@Override
//Different functions from JPA library to be used for enabling transactions with databases.
public void run(String…... arguments) throws Exception {
RepositoryName.save(new TableName("Data1", "Data2", "Data3"));
RepositoryName.save(new TableName("Data1", "Data2", "Data3"));
RepositoryName.save(new TableName("Data1", "Data2", "Data3"));
RepositoryName.save(new TableName("Data1", "Data2", "Data3"));
logger.info("number of elements in table now: {}", RepositoryName.count());</parameter>

JPA 儲存庫如何運作?

這些實作對於在使用 Java 開發的 Web 或桌面應用程式中實現持久性至關重要。要使這些介面正常運作,必須將所有依賴庫載入到類別路徑中。 建立介面後,可以使用「save()」、「count()」、「info()」、「findAll()」、「sort()」等函數來完成資料查詢或所需的操作。數據操縱。我們需要設定一個資料庫,以便透過 java 應用程式插入、更新或刪除下面表中的值。使用儲存庫可以輕鬆處理資料庫中的資料以及安全交易。

Java 儲存庫範例

對於初學者來說,實作 JPA 儲存庫是一個複雜的時間專案。所有連結庫、JAR、依賴項、伺服器設定和資料庫設定都是先決條件。

檔:pom.xml

程式碼:可以從 https://start.spring.io 下載。人們可以產生一個檔案並在根據系統和應用程式要求選擇值後下載它。

注意: 假設 H2 資料庫中已存在名為「user」的表的資料庫,其中包含「Id」和「Name」兩列。 “Id”是系統自動產生的主鍵。

檔案:UserControl.java

代碼:

package test.controller;
import test.model.User
import test.repository.UserJpaRespository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/users")
public class UsersControl {
@Autowired
private UserJpaRespository userJpaRespository;
@GetMapping(value = "/all")
public List<user> findAll() {
return userJpaRespository.findAll();
}
@PostMapping(value = "/load")
public User load(@RequestBody final User users) {
userJpaRespository.save(users);
return userJpaRespository.findByName(users.getName());
}
}</user>

檔:User.java

代碼:

package test.model
import test.controller;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
@Entity
public class User {
private Long id;
private String name;
@Id
@GeneratedValue
public Long getId() {
return id;}
public void setId(Long id) {
this.id = id;}
public String getName() {
return name;}
public void setName(String name) {
this.name = name;}
}

檔:UserJPARepository.java

代碼:

package test.repository;
import test.controller;
import package.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
@Component
public interface UserJpaRespository extends JpaRepository<user long>{
}</user>

檔:Implementation.java

代碼:

package test.implementation;
import static org.hamcrest.CoreMatchers.is;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import java.util.ArrayList;
import java.util.List;
import test.controller;
import org.junit.Before;
import org.junit.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import com.fasterxml.jackson.databind.ObjectMapper;
import test.model.user;
import com.fasterxml.jackson.databind.ObjectMapper;
import test.repository.UserJpaRespository;
@RunWith(SpringRunner.class)
public class Implementation {
private User user;
@MockBean
private UserJpaRespository userJpaRespository;
@Before
public void setUp()
{
user = new User();
user.setId(1l);
user.setName("Virat");
}
}

輸出:

Java儲存庫

這裡的值被插入到資料庫中。

說明

第一個檔案「UserControl」包含有關使用「@GetMapping()」和「@PostMapping」等 JPA 函數提取或儲存值的詳細信息,這些函數需要一些基本檔案來支援它的工作。這些支援檔案是 User.java 和 UserJPARepository.java。

檔案「User.java」以Java物件的形式維護資料庫的結構,允許使用Java持久性物件存取資料庫。要開始處理該項目,您必須使用步驟 1 中提供的原始程式碼產生「pom.xml」檔案。在提供的輸出中,「pom.xml」檔案負責設定專案所需的所有相依性。依賴項包含「spring框架」相關資料和持久化物件相關資料。 UserJPARepository.java 檔案透過擴充內建庫 JpaRepository 來啟動 JPA 儲存庫。

結論

JPA 儲存庫非常有用,因為它提供了一個通用平台來用 JAVA 語言建立查詢,但可以與下面的任何資料庫一起使用。它透過提供優雅的函數來完成庫支援的任務,從而減少程式碼行數。它減少了“樣板”程式碼的使用,從而改善了外觀和執行速度。

以上是Java儲存庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?Mar 17, 2025 pm 05:46 PM

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?Mar 17, 2025 pm 05:45 PM

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?Mar 17, 2025 pm 05:44 PM

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?Mar 17, 2025 pm 05:43 PM

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Mar 17, 2025 pm 05:35 PM

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境