Bagaimana untuk mengintegrasikan Hibernate dalam projek SpringBoot
Mengintegrasikan Hibernate dalam Projek But Spring
Preface
Hibernate ialah rangka kerja ORM (Pemetaan Perkaitan Objek) yang popular yang boleh memetakan objek Java ke jadual pangkalan data dengan mudah. Dalam projek Spring Boot, penyepaduan Hibernate boleh membantu kami melaksanakan operasi pangkalan data dengan lebih mudah Artikel ini akan memperkenalkan cara untuk menyepadukan Hibernate dalam projek Spring Boot dan memberikan contoh yang sepadan.
1. Perkenalkan dependensi
Perkenalkan dependensi berikut dalam fail pom.xml:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </dependency>
Antaranya, spring-boot-starter-data-jpa disediakan oleh Spring Boot Sebagai kebergantungan permulaan untuk menyepadukan JPA (Java Persistence API), ia sudah termasuk kebergantungan berkaitan Hibernate. Pemacu untuk pangkalan data MySQL ialah mysql-connector-java. hibernate-core ialah pergantungan teras Hibernate.
2. Konfigurasikan sumber data
Konfigurasikan sumber data dalam application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect spring.jpa.hibernate.ddl-auto=create-drop
Pangkalan data MySQL digunakan di sini dan boleh diubah suai mengikut situasi sebenar. Antaranya, atribut spring.jpa.hibernate.ddl-auto menentukan cara Hibernate menjana jadual pangkalan data secara automatik, dan create-drop bermakna jadual akan dibuat setiap kali aplikasi dimulakan dan jadual akan dipadamkan apabila aplikasi itu tertutup.
3 Buat kelas entiti
Buat kelas entiti mudah untuk pemetaan ke jadual pangkalan data:
@Entity @Table(name = "person") public class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name") private String name; @Column(name = "age") private int age; // getters and setters }
Gunakan anotasi @Entity pada kelas entiti untuk menunjukkan bahawa ini ialah kelas entiti JPA. Anotasi @Table digunakan untuk menentukan nama jadual pangkalan data yang mana kelas entiti dipetakan. Gunakan anotasi @Id untuk menentukan kunci utama kelas entiti dan gunakan @GeneratedValue untuk menentukan cara kunci utama dijana. Anotasi @Column digunakan untuk menentukan nama lajur pangkalan data yang mana atribut kelas entiti dipetakan.
4. Cipta Repositori
Buat Repositori mudah untuk mengakses pangkalan data:
@Repository public interface PersonRepository extends JpaRepository<Person, Long> { }
Gunakan anotasi @Repository pada Repositori untuk menunjukkan bahawa ia adalah komponen Spring, dan Digunakan untuk mengakses pangkalan data. PersonRepository mewarisi daripada JpaRepository antara muka ini menyediakan banyak kaedah operasi pangkalan data biasa, seperti save, findById, dsb.
5. Tulis kod perniagaan
Gunakan PersonRepository dalam Perkhidmatan untuk operasi pangkalan data:
@Service public class PersonService { public void savePerson(Person person) { personRepository.save(person); } public List<Person> getPersons() { return personRepository.findAll(); }
Anotasi @Service digunakan pada Perkhidmatan untuk menunjukkan bahawa ia adalah komponen Spring yang digunakan untuk mengendalikan logik perniagaan. Dalam contoh ini, kami mentakrifkan dua kaedah, savePerson digunakan untuk menyimpan objek Person ke pangkalan data, dan getPersons digunakan untuk mendapatkan semua objek Person.
6 Tulis pengawal untuk mengendalikan permintaan http
Tulis pengawal mudah untuk mengendalikan permintaan HTTP:
@RestController public class PersonController { @Autowired private PersonService personService; @PostMapping("/person") public void savePerson(@RequestBody Person person) { personService.savePerson(person); } @GetMapping("/persons") public List<Person> getPersons() { return personService.getPersons(); } }
Gunakan anotasi @RestController pada pengawal, Menunjukkan bahawa ini adalah komponen Spring dan digunakan untuk mengendalikan permintaan HTTP. Dalam contoh ini, kami mentakrifkan dua kaedah, savePerson digunakan untuk memproses permintaan POST dan menyimpan objek Person ke pangkalan data, dan getPersons digunakan untuk memproses permintaan GET dan mendapatkan semua objek Person.
7. Jalankan aplikasi
Kini anda boleh memulakan aplikasi dan mengakses http://localhost:8080/persons untuk mendapatkan semua objek Person. Jika anda perlu menambah objek Orang baharu, anda boleh menggunakan permintaan POST untuk menghantar data ke http://localhost:8080/person. Jika semuanya baik-baik saja, anda seharusnya melihat output berikut:
[{"id":1,"name":"Alice","age":20},{"id":2 ,"nama":"Bob","umur":30}]
Atas ialah kandungan terperinci Bagaimana untuk mengintegrasikan Hibernate dalam projek SpringBoot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Pengenalan kepada Jasypt Jasypt ialah perpustakaan java yang membenarkan pembangun menambah fungsi penyulitan asas pada projeknya dengan usaha yang minimum dan tidak memerlukan pemahaman yang mendalam tentang cara penyulitan berfungsi dengan tinggi untuk penyulitan sehala dan dua hala. teknologi penyulitan berasaskan piawai. Sulitkan kata laluan, teks, nombor, perduaan... Sesuai untuk penyepaduan ke dalam aplikasi berasaskan Spring, API terbuka, untuk digunakan dengan mana-mana pembekal JCE... Tambahkan kebergantungan berikut: com.github.ulisesbocchiojasypt-spring-boot-starter2 Faedah Jasypt melindungi keselamatan sistem kami Walaupun kod itu bocor, sumber data boleh dijamin.

Senario penggunaan 1. Tempahan berjaya dibuat tetapi pembayaran tidak dibuat dalam masa 30 minit. Pembayaran tamat masa dan pesanan dibatalkan secara automatik 2. Pesanan telah ditandatangani dan tiada penilaian dilakukan selama 7 hari selepas ditandatangani. Jika pesanan tamat dan tidak dinilai, sistem lalai kepada penilaian positif 3. Pesanan dibuat dengan jayanya jika peniaga tidak menerima pesanan selama 5 minit, pesanan itu dibatalkan peringatan mesej teks dihantar... Untuk senario dengan kelewatan yang lama dan prestasi masa nyata yang rendah, kami boleh Gunakan penjadualan tugas untuk melaksanakan pemprosesan undian biasa. Contohnya: xxl-job Hari ini kita akan memilih

1. Redis melaksanakan prinsip kunci teragih dan mengapa kunci teragih diperlukan Sebelum bercakap tentang kunci teragih, adalah perlu untuk menjelaskan mengapa kunci teragih diperlukan. Lawan daripada kunci yang diedarkan ialah kunci yang berdiri sendiri Apabila kami menulis program berbilang benang, kami mengelakkan masalah data yang disebabkan oleh mengendalikan pembolehubah yang dikongsi pada masa yang sama Kami biasanya menggunakan kunci untuk mengecualikan pembolehubah yang dikongsi bersama untuk memastikan ketepatannya pembolehubah yang dikongsi skop penggunaannya adalah dalam proses yang sama. Jika terdapat berbilang proses yang perlu mengendalikan sumber yang dikongsi pada masa yang sama, bagaimanakah ia boleh saling eksklusif? Aplikasi perniagaan hari ini biasanya merupakan seni bina perkhidmatan mikro, yang juga bermakna bahawa satu aplikasi akan menggunakan berbilang proses Jika berbilang proses perlu mengubah suai baris rekod yang sama dalam MySQL, untuk mengelakkan data kotor yang disebabkan oleh operasi yang tidak teratur, keperluan pengedaran. untuk diperkenalkan pada masa ini. Gaya dikunci. Ingin mencapai mata

Springboot membaca fail, tetapi tidak boleh mengakses perkembangan terkini selepas membungkusnya ke dalam pakej balang Terdapat situasi di mana springboot tidak boleh membaca fail selepas membungkusnya ke dalam pakej balang adalah tidak sah dan hanya boleh diakses melalui strim. Fail berada di bawah resources publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input

Apabila Springboot+Mybatis-plus tidak menggunakan pernyataan SQL untuk melaksanakan operasi penambahan berbilang jadual, masalah yang saya hadapi akan terurai dengan mensimulasikan pemikiran dalam persekitaran ujian: Cipta objek BrandDTO dengan parameter untuk mensimulasikan parameter yang dihantar ke latar belakang bahawa adalah amat sukar untuk melaksanakan operasi berbilang jadual dalam Mybatis-plus Jika anda tidak menggunakan alatan seperti Mybatis-plus-join, anda hanya boleh mengkonfigurasi fail Mapper.xml yang sepadan dan mengkonfigurasi ResultMap yang berbau dan kemudian. tulis pernyataan sql yang sepadan Walaupun kaedah ini kelihatan menyusahkan, ia sangat fleksibel dan membolehkan kita

SpringBoot dan SpringMVC adalah kedua-dua rangka kerja yang biasa digunakan dalam pembangunan Java, tetapi terdapat beberapa perbezaan yang jelas antara mereka. Artikel ini akan meneroka ciri dan penggunaan kedua-dua rangka kerja ini dan membandingkan perbezaannya. Mula-mula, mari belajar tentang SpringBoot. SpringBoot telah dibangunkan oleh pasukan Pivotal untuk memudahkan penciptaan dan penggunaan aplikasi berdasarkan rangka kerja Spring. Ia menyediakan cara yang pantas dan ringan untuk membina bersendirian, boleh dilaksanakan

1. Sesuaikan RedisTemplate1.1, mekanisme siri lalai RedisAPI Pelaksanaan cache Redis berasaskan API menggunakan templat RedisTemplate untuk operasi cache data Di sini, buka kelas RedisTemplate dan lihat maklumat kod sumber kelas tersebut. Isytihar kunci, Pelbagai kaedah pesirilan nilai, nilai awal kosong @NullableprivateRedisSe

Dalam projek, beberapa maklumat konfigurasi sering diperlukan Maklumat ini mungkin mempunyai konfigurasi yang berbeza dalam persekitaran ujian dan persekitaran pengeluaran, dan mungkin perlu diubah suai kemudian berdasarkan keadaan perniagaan sebenar. Kami tidak boleh mengekodkan konfigurasi ini dalam kod. Adalah lebih baik untuk menulisnya dalam fail konfigurasi Sebagai contoh, anda boleh menulis maklumat ini dalam fail application.yml. Jadi, bagaimana untuk mendapatkan atau menggunakan alamat ini dalam kod? Terdapat 2 kaedah. Kaedah 1: Kita boleh mendapatkan nilai yang sepadan dengan kunci dalam fail konfigurasi (application.yml) melalui ${key} beranotasi dengan @Value Kaedah ini sesuai untuk situasi di mana terdapat sedikit perkhidmatan mikro projek, Apabila perniagaan adalah rumit, logik
