Maison  >  Article  >  Java  >  Utilisation de Spring Data JPA pour se connecter à la base de données dans Spring Boot

Utilisation de Spring Data JPA pour se connecter à la base de données dans Spring Boot

不言
不言avant
2018-10-17 16:16:343728parcourir

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.
Si nous n'avons pas besoin d'associer l'un des attributs à la base de données et de simplement faire des calculs pendant l'affichage, il suffit d'ajouter l'attribut @Transient.

Utilisation de Spring Data JPA pour se connecter à la base de données dans Spring Boot

@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 :
Vous devez ajouter deux paramètres après JpaRepository, l'un est la classe d'entité et l'autre est le type de clé primaire.

Utilisation de Spring Data JPA pour se connecter à la base de données dans Spring Boot

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 :

Utilisation de Spring Data JPA pour se connecter à la base de données dans Spring Boot

Utilisation de Spring Data JPA pour se connecter à la base de données dans Spring Boot

Requête complexe

Ici, nous devons écrire SQL nous-mêmes. Jetons un coup d'œil à ce à quoi nous devons prêter attention.
Utilisez l'annotation @Query sur la méthode de requête SQL. Si la suppression et la modification sont impliquées, ajoutez @Modifying si nécessaire. Vous pouvez également ajouter la prise en charge @Transactional pour les éléments, les paramètres de délai d'expiration des requêtes, etc.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer