Hibernate est un framework ORM (Object Relational Mapping) populaire qui peut mapper des objets Java à des tables de base de données pour des opérations de persistance pratiques. Dans les projets Spring Boot, l'intégration d'Hibernate peut nous aider à effectuer des opérations de base de données plus facilement. Cet article explique comment intégrer Hibernate dans les projets Spring Boot et fournit des exemples correspondants.
Introduisez les dépendances suivantes dans le fichier 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>
Parmi elles, spring-boot-starter-data-jpa est la dépendance de démarrage fournie par Spring Boot pour l'intégration de JPA (Java Persistence API) . Il contient déjà des dépendances liées à Hibernate. Le pilote de la base de données MySQL est mysql-connector-java. hibernate-core est la dépendance principale d'Hibernate.
Configurez la source de données dans 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
La base de données MySQL est utilisée ici et peut être modifiée en fonction de la situation réelle. Parmi eux, l'attribut spring.jpa.hibernate.ddl-auto spécifie comment Hibernate génère automatiquement les tables de base de données, et create-drop signifie que la table sera créée à chaque démarrage de l'application et que la table sera supprimée lorsque l'application sera lancée. fermé.
Créez une classe d'entité simple pour le mappage à une table de base de données :
@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 }
Utilisez l'annotation @Entity sur la classe d'entité pour indiquer qu'il s'agit d'une classe d'entité JPA. L'annotation @Table est utilisée pour spécifier le nom de la table de base de données sur laquelle la classe d'entité est mappée. Utilisez l'annotation @Id pour définir la clé primaire de la classe d'entité et utilisez @GeneratedValue pour spécifier comment la clé primaire est générée. L'annotation @Column est utilisée pour spécifier le nom de la colonne de base de données sur laquelle les attributs de classe d'entité sont mappés.
Créez un référentiel simple pour accéder à la base de données :
@Repository public interface PersonRepository extends JpaRepository<Person, Long> { }
Utilisez l'annotation @Repository sur le référentiel pour indiquer qu'il s'agit d'un composant Spring et qu'il est utilisé pour accéder à la base de données. PersonRepository hérite de JpaRepository. Cette interface fournit de nombreuses méthodes courantes de fonctionnement de base de données, telles que save, findById, etc.
Utilisez PersonRepository dans le service pour les opérations de base de données :
@Service public class PersonService { public void savePerson(Person person) { personRepository.save(person); } public List<Person> getPersons() { return personRepository.findAll(); }
@L'annotation Service est utilisée sur un service pour indiquer qu'il s'agit d'un composant Spring utilisé pour gérer la logique métier. Dans cet exemple, nous définissons deux méthodes, savePerson est utilisée pour enregistrer les objets Person dans la base de données et getPersons est utilisée pour obtenir tous les objets Person.
Écrivez un contrôleur simple pour gérer les requêtes 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(); } }
Utilisez l'annotation @RestController sur le contrôleur pour indiquer qu'il s'agit d'un composant Spring et qu'il est utilisé pour gérer les requêtes HTTP. Dans cet exemple, nous définissons deux méthodes, savePerson est utilisée pour traiter les requêtes POST et enregistrer les objets Person dans la base de données, et getPersons est utilisée pour traiter les requêtes GET et obtenir tous les objets Person.
Vous pouvez maintenant démarrer l'application et accéder à http://localhost:8080/persons pour obtenir tous les objets Personne. Si vous devez ajouter un nouvel objet Person, vous pouvez utiliser une requête POST pour envoyer des données à http://localhost:8080/person. Si tout va bien, vous devriez voir le résultat suivant :
[{"id":1,"name":"Alice","age":20},{"id":2,"name":" Bob","age":30}]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!