Administration des bases de données

Blogue

Les cours

Tutoriel sur mongoDB en utilisant Java


Rédigé par , le
mongoDB
Puisque les bases de données de type NoSQL sont de plus en plus utilisées comme solution de persistance de données, voici un court tutoriel permettant de créer et gérer une base de données mongoDB.

Pour plusieurs informaticiens, les bases de données NoSQL sont extrêmement intéressantes puisqu'elles sont conçues pour être extensibles (scalable). Elles sont aussi simples à utiliser et souvent open-source. 

Pour ceux qui ont suivi le cours de DBA au cégep du Vieux Montréal, mongoDB est une base de données NoSQL qui est dans la même catégorie que CouchDB, soit de type "Document".  C'est également une base de données qui est supporté dans une multitude de langages.

Comme projet, je suggère de créer une base de données de logs. Elle contiendra des traces d'opérations d'une application XYZ.

Pour ne pas perdre les non-iniciés aux bases de données comme mongoDB/CouchDB, supposez qu'un document est une ligne de table et qu'une collection de documents est une table. 
 
Cela étant dit... temps de s'y mettre !


Étape #1 - Installer et créer une base de données mongoDB sur Windows

Avant toute chose, il faut d'abord aller sur le site de mongoDB et télécharger l'application (.zip) qui correspond à votre système d'exploitation. Par la suite, il faut créer le dossier C:/data/db.
 
Ensuite, il faut exécuter et laisser ouvert mongod.exe qui se trouve dans le zip que vous avez téléchargé. Cet exécutable est l'application mongoDB. Un peu comme mysqld.exe est l'exécutable pour démarrer MySQL.
 
Pour interroger mongoDB, exécutez mongo.exe.

Exemples d'interrogation :
show dbs // Affiche les bases de données disponibles
use db_logs // Création de la BD db_logs et "entre" dans celle-ci
db.getCollectionNames() // Afficher collections/tables
 
Étape #2 - Création de l'application Java

Pour utiliser mongoDB avec Java, il faut télécharger la librairie (driver). Pour trouver le .jar, allez sur le site de mongoDB, dans la section drivers et ensuite dans la section Java Language Center.
 
Créez ensuite votre projet Java dans l'IDE de votre choix et insérez la librairie mongoDB à votre application. 
 
Pour créer une connexion à mongoDB et pour utiliser notre base de données db_logs, écrire : 
// Création de la connexion à MongoDB
Mongo mongoClient = new Mongo("localhost");
			
// Notre base de données
DB db = mongoClient.getDB("db_logs");
  
Pour créer et utiliser une collection (une "table"), faire ensuite 

DBCollection logCollection = db.getCollection("app_logs");
 
 
Maintenant que nous pouvons insérer des traces (logs) dans notre application, voici des exemples d'insertion dans mongoDB :
 
try {
	int i = Integer.parseInt("doomed");
	// ...
}
catch (NumberFormatException e) {
	BasicDBObject doc = new BasicDBObject();
	doc.append("type", "Exception");
	doc.append("time", System.currentTimeMillis());
	doc.append("info", e.getMessage());

	logCollection.insert(doc);
}

boolean userHasAccess = false;
int id= 234;

if (!userHasAccess) {
	BasicDBObject doc = new BasicDBObject();
	doc.append("type", "Security");
	doc.append("time", System.currentTimeMillis());
	doc.append("info", "UserID : " + id);

	logCollection.insert(doc);
} 
 
Finalement, pour parcourir la liste des logs de l'application...
 

// Select All
DBCursor cursor = logCollection.find();
try {
   while(cursor.hasNext()) {
	   DBObject obj = cursor.next();
	   System.out.println(obj.get("type") + " => " + obj.get("info"));
   }
} finally {
   cursor.close();
}

System.out.println("===============================================");

// Select Where type = Security
BasicDBObject query = new BasicDBObject("type", "Security");
cursor = logCollection.find(query);
try {
   while(cursor.hasNext()) {
	   DBObject obj = cursor.next();
	   System.out.println(obj.get("type") + " => " + obj.get("info"));
   }
} finally {
   cursor.close();
}
 
Ha oui ! Ne pas oublier de fermer votre connexion à la fin de votre application.
  

mongoClient.close();


Ce tutoriel ne démontre que les rudiments de mongoDB, mais déjà on peut constater la simplicité et l'efficacité de mongoDB et des bases de données NoSQL. Pas besoin de create table, create database, ...


Les commentaires sur cet article
Par : thierno
2018-02-05 10:11:03

merci :)

Ajouter votre commentaire
(facultatif)
(facultatif et non divulgé)
Captcha image
Prenez le nombre affiché et faites moins 1.
 
Blog  

Les articles


Pour envoyer une demande d'assistance à l'enseignant, cliquez ici