Rumah >Java >javaTutorial >Repositori Java

Repositori Java

WBOY
WBOYasal
2024-08-30 15:40:28583semak imbas

Dalam rangka kerja Java Spring, repositori berasaskan JPA biasanya digunakan. Repositori ini penting dalam mengurus operasi pangkalan data dan merupakan sebahagian daripada modul Spring Data JPA. Repositori mentakrifkan kaedah baharu yang elegan untuk menyimpan, mengemas kini dan mengekstrak data yang disimpan daripada aplikasi JAVA di bahagian belakang. Semua operasi CRUD (Buat, baca, kemas kini dan padam) boleh dilaksanakan dengan bantuan antara muka repositori. JPA ialah singkatan untuk JAVA Persistence API (Antara muka program aplikasi). Seperti namanya, JPA membantu dalam mengekalkan objek java dalam pangkalan data hubungan. Terdapat dua cara untuk melakukan ini, dan ia adalah:

IKLAN Kursus Popular dalam kategori ini JAVA MASTERY - Pengkhususan | 78 Siri Kursus | 15 Ujian Olok-olok

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

  1. Jadual perkaitan dipetakan ke subsistem menggunakan kelas peta.
  2. EntityManager API.

Dalam artikel ini, kita akan membaca tentang sintaks dan penggunaan repositori JPA untuk operasi CRUD.

Sintaks:

Setelah semua perpustakaan yang diperlukan telah diimport dan dipautkan ke Spring, objek Persistence dan Java EE dalam laluan kelas projek, langkah seterusnya ialah mencipta antara muka dengan memanjangkan antara muka "JpaRepository". Ini adalah lanjutan pustaka repositori dan mengandungi repositori lain seperti CrudRepository dan PagingAndSortingRepository, bersama-sama dengan fungsi asas repositori.

Nota: POM.XML harus ada dalam projek anda untuk menggunakan aplikasi JPA.

Struktur:

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());

Bagaimanakah Repositori JPA Berfungsi?

Pelaksanaan ini penting untuk membolehkan kegigihan dalam aplikasi web atau desktop yang dibangunkan menggunakan Java. Untuk memastikan antara muka ini berfungsi, semua perpustakaan bergantung mesti dimuatkan dalam laluan kelas. Setelah antara muka dibuat, maka fungsi seperti "save()," "count()," "info()," "findAll()," "sort()," dan lain-lain digunakan untuk menyelesaikan pertanyaan data atau diperlukan manipulasi data. Kita perlu menyediakan pangkalan data untuk memasukkan, mengemas kini atau memadam nilai daripada jadual di bawah melalui aplikasi java. Menggunakan repositori memudahkan pengendalian data daripada pangkalan data bersama-sama dengan transaksi selamat.

Contoh Repositori Java

Melaksanakan repositori JPA ialah projek masa yang kompleks untuk pemula. Semua perpustakaan terpaut, JAR, kebergantungan, persediaan pelayan dan persediaan pangkalan data adalah prasyarat.

Fail: pom.xml

Kod: Ini boleh dimuat turun dari https://start.spring.io. Seseorang boleh menjana fail dan memuat turunnya selepas memilih nilai mengikut keperluan sistem dan aplikasi mereka.

Nota: Dengan mengandaikan bahawa pangkalan data dengan jadual bernama "pengguna" sudah ada dalam pangkalan data H2 dengan dua lajur, "Id" dan "Nama." "Id" ialah kunci utama yang dijana secara automatik oleh sistem.

Fail: UserControl.java

Kod:

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());
}
}

Fail: User.java

Kod:

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;}
}

Fail: UserJPARepository.java

Kod:

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

Fail:Implementation.java

Kod:

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");
}
}

Output:

Repositori Java

Di sini nilai dimasukkan ke dalam pangkalan data.

Penjelasan

Fail pertama, "UserControl" mengandungi butiran mengenai mengekstrak atau menyimpan nilai menggunakan fungsi JPA seperti "@GetMapping()" dan "@PostMapping" yang memerlukan beberapa fail asas untuk menyokongnya untuk berfungsi. Fail sokongan ini ialah User.java dan UserJPARepository.java.

Fail “User.java” mengekalkan struktur pangkalan data dalam bentuk objek Java, membenarkan akses kepada pangkalan data menggunakan objek kegigihan Java. Untuk mula mengerjakan projek, anda mesti menjana fail "pom.xml" menggunakan kod sumber yang disediakan dalam Langkah 1. Dalam output yang disediakan, fail "pom.xml" bertanggungjawab untuk menyediakan semua kebergantungan yang diperlukan untuk projek . Ketergantungan mengandungi data berkaitan "rangka kerja musim bunga" dan data berkaitan objek kegigihan. Fail UserJPARepository.java menyediakan permulaan repositori JPA dengan memperluaskan perpustakaan terbina dalam JpaRepository.

Kesimpulan

Repositori JPA sangat berguna kerana ia menyediakan platform generik untuk membuat pertanyaan dalam bahasa JAVA tetapi boleh digunakan dengan mana-mana pangkalan data di bawah. Ia mengurangkan bilangan baris kod dengan menyediakan fungsi elegan untuk menyelesaikan tugas yang disandarkan oleh perpustakaan. Ia mengurangkan penggunaan kod "plat dandang", sekali gus meningkatkan rupa dan kelajuan pelaksanaan.

Atas ialah kandungan terperinci Repositori Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Julat di JawaArtikel seterusnya:Julat di Jawa