Bonne journée à tous!
Le tout nouveau volet
«Developer on the Spring Framework» a commencé, «soudainement», ce cours s'est avéré très populaire parmi les nouveaux étudiants et ceux qui nous ont déjà désappris en Java et en entreprise «ordinaires». Donc, si c'est intéressant, venez nous voir pour
des leçons ouvertes et, bien sûr, partagez du matériel intéressant sur le sujet.
Traduction du tutoriel Spring Data MongoDB
Publié par Anand KumarC'est parti!
Dans le monde d'aujourd'hui, il est très important de créer et d'exécuter l'application dès que possible. De plus, l'application doit être facile à développer et à entretenir.
Spring est un tel framework qui facilite l'intégration avec de nombreux autres frameworks différents, ce qui simplifie le développement d'applications à l'aide de Spring. Une telle intégration est l'intégration de Spring avec MongoDB.
1. Introduction Dans cette leçon, nous discuterons d'une combinaison du framework Java Spring le plus célèbre et du plus célèbre système de gestion de base de données NoSQL (SGBD) MongoDB. MongoDB est un SGBD NoSQL orienté document qui stocke les données dans un format similaire à JSON.
L'intégration de Spring Data et MongoDB est fournie par Spring pour faciliter l'interaction des deux et la commodité des développeurs, éliminant ainsi la nécessité d'écrire de nombreuses requêtes pour l'insertion, la mise à jour et la suppression.
Voici quelques-unes des fonctionnalités fournies par le projet Spring Data MongoDB:
- Spring Data vous permet d'utiliser à la fois la classe @Configuration et la configuration XML.
- La hiérarchie d'exceptions Data Access Spring est utilisée pour traduire l'exception.
- Mappage intégré entre les POJO Java et un document MongoDB.
- La classe MongoTemplate, qui simplifie l'utilisation des opérations MongoDB courantes.
- En plus de MongoTemplate, vous pouvez utiliser les classes MongoReader et MongoWriter pour un rendu de bas niveau.
La meilleure façon de comprendre n'importe quelle technologie est de l'utiliser dans la pratique, et c'est exactement ce que nous allons faire maintenant.
Créons un programme simple pour en savoir plus sur Spring Data MongoDB.
2. Technologies et outilsExaminons les technologies et les outils que nous utiliserons pour créer le programme.
- Eclispe Oxygen.2 Release (4.7.2)
- Java - version 9.0.4
- Gradle - 4.6
- Serveur MongoDB - 3.6
- MongoCompass - 3.6
- SpringDataMongoDB - 2.0.5-RELEASE
3. Structure du projetLa structure de notre projet ressemblera à celle ci-dessous.
Structure du projet pour Spring Data MongoDBLe projet Gradle aura la structure indiquée ci-dessus. Dans le cas de pom.xml, la structure du projet sera légèrement différente.
4. Le programmeDans le cadre de ce programme, nous essaierons d'effectuer les tâches ci-dessous.
- Enregistrement d'un objet dans MongoDB
- Mise à jour d'un objet dans MongoDB
- Supprimer un objet de MongoDB
- Récupérer tous les objets de MongoDB
Analysons maintenant tous les composants du programme. Tout d'abord, nous allons commencer par les dépendances et les fichiers jar nécessaires au programme.
4.1 gradleNous utilisons Gradle pour construire dans le cadre du programme. Le fichier
build.gradle
ressemblera à celui illustré ci-dessous.
apply plugin: 'java' repositories { mavenCentral() } dependencies { compile group: 'org.springframework.data', name: 'spring-data-mongodb', version: '2.0.5.RELEASE' implementation 'com.google.guava:guava:23.0' testImplementation 'junit:junit:4.12' }
Dans le fichier
build.gradle
-
build.gradle
, la ligne
apply plugin: 'java'
indique le plug-in à installer. Dans notre cas, il s'agit d'un plugin Java.
La balise
repositories{}
indique le référentiel à partir duquel les dépendances doivent être extraites. Nous avons choisi
mavenCentral
pour extraire les fichiers jar dépendants. Nous pouvons également utiliser jcenter pour afficher les fichiers jar dépendants correspondants.
La balise
dependencies {}
est utilisée pour fournir les données nécessaires sur les fichiers jar qui doivent être extraits pour le projet.
4.2 Configuration pour MongoDBPour utiliser la configuration MongoDB, nous devons implémenter la classe
AbstractMongoConfiguration
. La classe
MongoConfig.java
ressemblera à celle illustrée ci-dessous. Ici, nous utilisons des annotations au lieu de xml. Mais XML peut également être utilisé pour configurer la configuration.
Implémentation de la classe MongoConfig.java
package com.tutorial.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.config.AbstractMongoConfiguration; import com.mongodb.MongoClient; @Configuration public class MongoConfig extends AbstractMongoConfiguration { @Override public String getDatabaseName() { return "local"; } @Override @Bean public MongoClient mongoClient() { return new MongoClient("127.0.0.1"); } }
@Configuration
utilisé pour définir la classe
MongoConfig.java
comme classe de configuration.
@Bean
définit le
MongoClient
.
4.3 Classe de modèleConsidérons maintenant la classe du modèle. Nous utilisons
student.java
comme classe modèle qui contient des attributs pour Student, tels que le nom et l'âge. La
Student.java
modèle Student.java
Student.java
utilisée pour mapper les POJO à la collection MongoDB.
Classe modèle étudiant
package com.tutorial.model; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection = "students") public class Student { public Student(String studentName, int studentAge) { this.studentName = studentName; this.studentAge = studentAge; } @Id private String id; String studentName; int studentAge; public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } public int getStudentAge() { return studentAge; } public void setStudentAge(int studentAge) { this.studentAge = studentAge; } @Override public String toString() { return String.format( "Student[id=%s, studentName='%s', studentAge="+studentAge+"]", id, studentName); } }
@Document
définit un document. La propriété de
collection
détermine la collection qui sera utilisée pour correspondre à la collection. Tous les attributs référencés comme faisant partie de la collection doivent être accessibles dans la classe POJO.
@Id
définit l'identifiant de la collection.
4.4 Opérations CRUDPour effectuer des opérations CRUD (abréviation de créer, lire, mettre à jour, supprimer), telles que l'enregistrement, la mise à jour, la suppression et la récupération de données de MongoDB, nous utiliserons
MongoOperations
.
Examinons maintenant la classe
MongoDBPOperations.java
. Cette classe contient l'implémentation de toutes les méthodes d'opérations CRUD.
La classe MongoDBPOperations qui sera utilisée pour effectuer des opérations CRUD
package com.tutorial; import java.util.List; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import com.tutorial.model.Student; public class MongoDBPOperations { public void saveStudent(MongoOperations mongoOperation, Student student) { mongoOperation.save(student); System.out.println("Student saved successfully");
La classe la plus importante d'un programme Java est la classe qui contient la méthode
main
.
4.5 Classe d'applicationLa classe principale qui contient la méthode principale est la classe
Application.java
. Nous utiliserons cette classe pour appeler des méthodes de la classe
MongoDBPOperations
.
Classe d'application pour appeler les méthodes de la classe MongoDBPOperations
package com.tutorial; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import com.tutorial.config.MongoConfig; import com.tutorial.model.Student; public class Application { public static void main (String[] args) {
Examinons pas à pas les opérations effectuées dans la classe
Application.java
:
- Nous créons un
ApplicationContext
. Cela est dû à la nécessité de télécharger la configuration. - De plus, un objet
MongoOperations
été MongoOperations
pour charger le composant MongoTemplate
. - L'objet
MongoDBOperations
permet d'accéder aux méthodes permettant d'effectuer diverses opérations MongoOperation
. - De plus, un objet Etudiant a été créé avec le nom John et l'âge de 15 ans.
- Nous appelons la méthode
saveMethod
de la classe saveMethod
et passons les paramètres nécessaires pour enregistrer l'objet dans la base de données. - De la même manière, nous appelons les différentes méthodes
MongoDBOperations
une par une.
4.6 Démarrage du programmeEnfin, exécutons maintenant le programme en tant qu'application Java. Cliquez avec le bouton droit sur Application.java -> Exécuter en tant que -> Application Java.
Le résultat suivant apparaîtra dans la console.
Sortie de la console après le démarrage du programmeMaintenant, commentons la commande pour supprimer l'objet. MongoDB stockera avec succès les données.
Également, commentons la ligne pour supprimer l'objet, comme indiqué ci-dessous.
Application de classe après avoir commenté les méthodes de suppression
package com.tutorial; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import com.tutorial.config.MongoConfig; import com.tutorial.model.Student; public class Application { public static void main (String[] args) {
Après avoir apporté des modifications au programme, redémarrons-le. Ce qui suit apparaît dans la console.
Console lorsque l'opération de suppression est mise en commentaireÀ la suite des commentaires sur la commande de suppression, MongoDB stockera les données et ressemblera donc à celle illustrée ci-dessous.
Sortie MongoDB après la commande save and update5. Téléchargez le projet EclipseVous pouvez télécharger l'intégralité du code source de cet exemple
ici.LA FIN
Comme toujours, nous attendons des questions et des commentaires ici ou allons à
Yuri pour
une leçon ouverte où vous pouvez non seulement écouter, mais aussi demander autour.