首頁 >Java >java教程 >Java儲存庫

Java儲存庫

WBOY
WBOY原創
2024-08-30 15:40:28586瀏覽

在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 1 column name, parameter 2 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());

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.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>{
}

檔: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 中的範圍