搜尋

在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
Java仍然是基於新功能的好語言嗎?Java仍然是基於新功能的好語言嗎?May 12, 2025 am 12:12 AM

Javaremainsagoodlanguageduetoitscontinuousevolutionandrobustecosystem.1)Lambdaexpressionsenhancecodereadabilityandenablefunctionalprogramming.2)Streamsallowforefficientdataprocessing,particularlywithlargedatasets.3)ThemodularsystemintroducedinJava9im

是什麼使Java很棒?關鍵特徵和好處是什麼使Java很棒?關鍵特徵和好處May 12, 2025 am 12:11 AM

Javaisgreatduetoitsplatformindependence,robustOOPsupport,extensivelibraries,andstrongcommunity.1)PlatformindependenceviaJVMallowscodetorunonvariousplatforms.2)OOPfeatureslikeencapsulation,inheritance,andpolymorphismenablemodularandscalablecode.3)Rich

前5個Java功能:示例和解釋前5個Java功能:示例和解釋May 12, 2025 am 12:09 AM

Java的五大特色是多態性、Lambda表達式、StreamsAPI、泛型和異常處理。 1.多態性讓不同類的對象可以作為共同基類的對象使用。 2.Lambda表達式使代碼更簡潔,特別適合處理集合和流。 3.StreamsAPI高效處理大數據集,支持聲明式操作。 4.泛型提供類型安全和重用性,編譯時捕獲類型錯誤。 5.異常處理幫助優雅處理錯誤,編寫可靠軟件。

Java的最高功能如何影響性能和可伸縮性?Java的最高功能如何影響性能和可伸縮性?May 12, 2025 am 12:08 AM

java'stopfeatureSnificallyenhanceItsperformanCandScalability.1)對象 - 方向clincipleslike-polymormormormormormormormormormormormorableableflexibleandscalablecode.2)garbageCollectionAutectionAutoctionAutoctionAutoctionAutoctionAutoctionAutoMenateMememorymanateMmanateMmanateMmanagementButCancausElatemention.3)

JVM內部:深入Java虛擬機JVM內部:深入Java虛擬機May 12, 2025 am 12:07 AM

JVM的核心組件包括ClassLoader、RuntimeDataArea和ExecutionEngine。 1)ClassLoader負責加載、鏈接和初始化類和接口。 2)RuntimeDataArea包含MethodArea、Heap、Stack、PCRegister和NativeMethodStacks。 3)ExecutionEngine由Interpreter、JITCompiler和GarbageCollector組成,負責bytecode的執行和優化。

什麼是使Java安全安全的功能?什麼是使Java安全安全的功能?May 11, 2025 am 12:07 AM

Java'ssafetyandsecurityarebolsteredby:1)strongtyping,whichpreventstype-relatederrors;2)automaticmemorymanagementviagarbagecollection,reducingmemory-relatedvulnerabilities;3)sandboxing,isolatingcodefromthesystem;and4)robustexceptionhandling,ensuringgr

必不可少的Java功能:增強您的編碼技巧必不可少的Java功能:增強您的編碼技巧May 11, 2025 am 12:07 AM

Javaoffersseveralkeyfeaturesthatenhancecodingskills:1)對象 - 方向 - 方向上的allowslowsmodelowsmodelingreal-worldentities

JVM最完整的指南JVM最完整的指南May 11, 2025 am 12:06 AM

thejvmisacrucialcomponentthatrunsjavacodebytranslatingitolachine特定結構,影響性能,安全性和便攜性。 1)theclassloaderloader,links andinitializesClasses.2)theexecutionEngineExecutionEngineExecutionEngineExecuteNexeCuteByteCuteByteCuteByTecuteByteCuteByteCuteBytecuteBytecuteByteCoDeinintolachineinstructionsions.3)Memo.3)Memo

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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境