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
- Jadual perkaitan dipetakan ke subsistem menggunakan kelas peta.
- 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 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>
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()); } }</user>
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>{ }</user>
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.
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!

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Dreamweaver Mac版
Alat pembangunan web visual