cari
RumahJavajavaTutorialRepositori Java

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 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:

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
Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?Mar 17, 2025 pm 05:46 PM

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

Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul?Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul?Mar 17, 2025 pm 05:45 PM

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

Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?Mar 17, 2025 pm 05:44 PM

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

Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?Mar 17, 2025 pm 05:43 PM

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]

Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?Mar 17, 2025 pm 05:35 PM

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

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

mPDF

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

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

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual