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-olokMulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
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());
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.
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:
Di sini nilai dimasukkan ke dalam pangkalan data.
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.
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!