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.
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.
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.
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.
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.
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.
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.
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!