Maison >Java >javaDidacticiel >Utilisation de Spring Data JPA pour se connecter à la base de données dans Spring Boot
Le contenu de cet article concerne l'utilisation de Spring Data JPA pour se connecter à la base de données dans Spring Boot. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
J'utilisais Mybatis pour le développement de bases de données. Récemment, après avoir appris Spring Boot, j'ai découvert que JPA est plus convivial, alors apprenons ensemble les principes de JPA.
Spring Data JPA
Brève introduction de JPA
Java Persistence API (JPA) est une spécification de Java. Il est utilisé pour sauvegarder des données entre des objets Java et des bases de données relationnelles.
JPA agit comme un pont entre les modèles de domaine orientés objet et les systèmes de bases de données relationnelles. Puisque JPA n’est qu’une spécification, il ne fait rien en soi. Cela nécessite une mise en œuvre. Par conséquent, les outils ORM comme Hibernate, TopLink et iBatis implémentent la spécification de persistance des données JPA.
Spring Data JPA est un ensemble de frameworks d'applications JPA encapsulés par Spring basés sur le framework ORM et les spécifications JPA, qui permettent aux développeurs d'accéder et d'exploiter les données avec un code minimaliste. Il fournit des fonctions courantes, notamment l'ajout, la suppression, la modification, la vérification, etc., et est facile à développer ! Apprendre et utiliser Spring Data JPA peut grandement améliorer l’efficacité du développement !
Requête de base
Spring Data JPA a implémenté certaines opérations de base de base de données, notamment l'ajout, la suppression, la modification et la requête de base.
Tout d'abord, vous devez introduire les dépendances pertinentes dans pom.xml.
<dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-data-jpa</artifactid> </dependency>
Deuxièmement, vous devez ajouter la configuration liée à la base de données et la configuration liée au jpa dans le fichier de configuration application.properties
#配置数据源 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/springboot spring.datasource.username=username spring.datasource.password=password #jpa数据库表格创建的方式,和控制台sql的打印 jpa.hibernate.ddl-auto=update jpa.hibernate.show-sql=true
Troisièmement, écrivez la classe d'entité.
Dans des circonstances normales, si nous ajoutons l'annotation @Entity à la classe d'entité, cela connectera la classe d'entité à la table.
@Id identifie la clé primaire
@GeneratedValue est la méthode d'incrémentation automatique pour spécifier la clé primaire.
Quatrièmement, écrivez la méthode de requête.
Écrivez simplement une interface pour implémenter l'interface JpaRepository :
Après avoir hérité de JpaRepository, vous pouvez utiliser de simples fonctions d'ajout, de suppression, de modification et de vérification.
@Test public void testBaseQuery() throws Exception { Girl girl=new Girl(); userRepository.findAll(); userRepository.findOne(1); userRepository.save(girl); userRepository.delete(girl); // ... }
Requête simple personnalisée
Parce que cela ne peut satisfaire que notre requête de base, si nous ne voulons pas suivre la requête qu'il nous a donnée, nous devons écrire notre propre instruction de requête Déjà ? La réponse est définitivement non. Nous pouvons toujours générer des instructions de requête selon les règles JPA.
Une requête simple personnalisée génère automatiquement du SQL en fonction du nom de la méthode. La syntaxe principale est findXXBy, readAXXBy, queryXXBy, countXXBy, getXXBy suivi du nom de l'attribut :
Requête complexe
Ici, nous devons écrire SQL nous-mêmes. Jetons un coup d'œil à ce à quoi nous devons prêter attention.Remarque : lors de l'écriture d'une requête, le nom de la table dans l'instruction HQL doit être le nom de la classe mappé par l'ORM.
//传单个值的时候 @Query("select u from User u where u.age = ?#{[0]}") List<user> findUsersByAge(int age); //传多个值的时候 @Query("select u from User u where u.firstname = :#{#customer.firstname}") List<user> findUsersByCustomersFirstname(@Param("customer") Customer customer)</user></user>
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!