Dans le framework Java Spring, les référentiels basés sur JPA sont couramment utilisés. Ces référentiels sont cruciaux dans la gestion des opérations de base de données et font partie du module Spring Data JPA. Les référentiels définissent une nouvelle méthode élégante de stockage, de mise à jour et d'extraction des données stockées à partir des applications JAVA dans le backend. Toutes les opérations CRUD (Créer, lire, mettre à jour et supprimer) peuvent être implémentées à l'aide d'une interface de référentiel. JPA est l'abréviation de JAVA Persistence API (Application Program Interface). Comme son nom l'indique, JPA aide à conserver les objets Java dans les bases de données relationnelles. Il existe deux façons de procéder, à savoir :
PUBLICITÉ Cours populaire dans cette catégorie MAÎTRISÉE JAVA - Spécialisation | 78 séries de cours | 15 tests simulésCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Dans cet article, nous étudierons la syntaxe et l'utilisation des référentiels JPA pour les opérations CRUD.
Syntaxe :
Une fois toutes les bibliothèques nécessaires importées et liées à Spring, aux objets Persistence et à Java EE dans le classpath du projet, l'étape suivante consiste à créer une interface en étendant l'interface « JpaRepository ». Il s'agit d'une extension de la bibliothèque de référentiels et contient d'autres référentiels comme CrudRepository et PagingAndSortingRepository, ainsi que les fonctions de base des référentiels.
Remarque : POM.XML doit être présent dans votre projet pour utiliser les applications JPA.Structure :
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import net.guides.springboot.jparepository.model.Employee; @Repository public interface repositoryname extends JpaRepository<Parameter 1 column name, parameter 2 data type> { } //Invocation of the interface created above. private repositoryname RepositoryName; @Override //Different functions from JPA library to be used for enabling transactions with databases. public void run(String…... arguments) throws Exception { RepositoryName.save(new TableName("Data1", "Data2", "Data3")); RepositoryName.save(new TableName("Data1", "Data2", "Data3")); RepositoryName.save(new TableName("Data1", "Data2", "Data3")); RepositoryName.save(new TableName("Data1", "Data2", "Data3")); logger.info("number of elements in table now: {}", RepositoryName.count());
Ces implémentations sont cruciales pour permettre la persistance dans les applications Web ou de bureau développées à l'aide de Java. Pour que ces interfaces fonctionnent, toutes les bibliothèques dépendantes doivent être chargées dans le chemin de classe. Une fois l'interface créée, des fonctions telles que « save() », « count() », « info() », « findAll() », « sort() » et d'autres sont utilisées pour accomplir la requête de données ou requises. manipulation de données. Nous devons configurer une base de données pour insérer, mettre à jour ou supprimer les valeurs des tables ci-dessous via une application Java. L'utilisation de référentiels facilite la gestion des données des bases de données ainsi que les transactions sécurisées.
La mise en œuvre d'un référentiel JPA est un projet de temps complexe pour les débutants. Toutes les bibliothèques liées, les JAR, les dépendances, la configuration du serveur et la configuration de la base de données sont des conditions préalables.
Fichier : pom.xml
Code : Celui-ci peut être téléchargé depuis https://start.spring.io. On peut générer un fichier et le télécharger après avoir sélectionné les valeurs selon les exigences de leur système et de leur application.
Remarque : En supposant que la base de données avec une table nommée « user » est déjà présente dans la base de données H2 avec deux colonnes, « Id » et « Name ». « Id » est la clé primaire générée automatiquement par le système.Fichier : UserControl.java
Code :
package test.controller; import test.model.User import test.repository.UserJpaRespository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/users") public class UsersControl { @Autowired private UserJpaRespository userJpaRespository; @GetMapping(value = "/all") public List<User> findAll() { return userJpaRespository.findAll(); } @PostMapping(value = "/load") public User load(@RequestBody final User users) { userJpaRespository.save(users); return userJpaRespository.findByName(users.getName()); } }
Fichier : User.java
Code :
package test.model import test.controller; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.GeneratedValue; @Entity public class User { private Long id; private String name; @Id @GeneratedValue public Long getId() { return id;} public void setId(Long id) { this.id = id;} public String getName() { return name;} public void setName(String name) { this.name = name;} }
Fichier : UserJPARepository.java
Code :
package test.repository; import test.controller; import package.model.User; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Component; @Component public interface UserJpaRespository extends JpaRepository<User, Long>{ }
Fichier : Implémentation.java
Code :
package test.implementation; import static org.hamcrest.CoreMatchers.is; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import java.util.ArrayList; import java.util.List; import test.controller; import org.junit.Before; import org.junit.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.http.MediaType; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; import com.fasterxml.jackson.databind.ObjectMapper; import test.model.user; import com.fasterxml.jackson.databind.ObjectMapper; import test.repository.UserJpaRespository; @RunWith(SpringRunner.class) public class Implementation { private User user; @MockBean private UserJpaRespository userJpaRespository; @Before public void setUp() { user = new User(); user.setId(1l); user.setName("Virat"); } }
Sortie :
Ici, la valeur est insérée dans la base de données.
Le premier fichier, « UserControl » contient des détails concernant l'extraction ou le stockage des valeurs à l'aide de fonctions JPA telles que « @GetMapping() » et « @PostMapping » qui nécessitent certains fichiers de base pour fonctionner. Ces fichiers de support sont User.java et UserJPARepository.java.
Le fichier « User.java » maintient la structure de la base de données sous forme d'objets Java, permettant l'accès à la base de données à l'aide d'objets de persistance Java. Pour commencer à travailler sur le projet, vous devez générer le fichier « pom.xml » en utilisant le code source fourni à l'étape 1. Dans la sortie fournie, le fichier « pom.xml » est responsable de la configuration de toutes les dépendances requises pour le projet. . Les dépendances contiennent des données liées au « framework Spring » et des données liées aux objets de persistance. Le fichier UserJPARepository.java fournit le lancement d'un référentiel JPA en étendant la bibliothèque intégrée JpaRepository.
Les référentiels JPA sont très utiles car ils fournissent une plate-forme générique pour créer des requêtes dans le langage JAVA mais peuvent être utilisés avec n'importe quelle base de données ci-dessous. Il réduit le nombre de lignes de code en fournissant des fonctions élégantes pour accomplir les tâches sauvegardées par les bibliothèques. Il réduit l'utilisation de code « passe-partout », améliorant ainsi l'apparence et la vitesse d'exécution.
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!