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 disponiblesuse db_logs // Création de la BD db_logs et "entre" dans celle-cidb.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, ...
merci :)