Exemple du monde hello Java MongoDB

Exemple de bonjour Java + MongoDB

Java mongodb hello world

Un simple exemple du monde bonjour Java + MongoDB - comment se connecter, créer une base de données, une collection et un document, enregistrer, mettre à jour, supprimer, obtenir et afficher un document (données).

Outils et technologies utilisés:

  1. MongoDB 2.2.3

  2. MongoDB-Java-Driver 2.10.1

  3. JDK 1.6

  4. Maven 3.0.3

  5. Eclipse 4.2

P.S Maven and Eclipse are both optional, just my personal favorite development tool.

1. Créer un projet Java

Créez unsimple Java project avec Maven.

mvn archetype:generate -DgroupId=com.example.core -DartifactId=mongodb
  -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

2. Obtenez Mongo Java Driver

Téléchargez le pilote mongo-java depuisgithub. Pour les utilisateurs Maven, déclare le pilote mongo-java danspom.xml.

pom.xml


  

    
        org.mongodb
        mongo-java-driver
        2.10.1
    

  

  
    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            2.3.1
            
                1.6
                1.6
            
        
            
            org.apache.maven.plugins
            maven-eclipse-plugin
            
                true
                true
            
        

    
  

3. Connexion Mongo

Connectez-vous au serveur MongoDB. Pour la version MongoDB> = 2.10.0, utiliseMongoClient.

    // Old version, uses Mongo
    Mongo mongo = new Mongo("localhost", 27017);

    // Since 2.10.0, uses MongoClient
    MongoClient mongo = new MongoClient( "localhost" , 27017 );

Si MongoDB en mode sécurisé, une authentification est requise.

    MongoClient mongoClient = new MongoClient();
    DB db = mongoClient.getDB("database name");
    boolean auth = db.authenticate("username", "password".toCharArray());

4. Base de données Mongo

Obtenez la base de données. Si la base de données n'existe pas, MongoDB la créera pour vous.

    DB db = mongo.getDB("database name");

Affichez toutes les bases de données.

    List dbs = mongo.getDatabaseNames();
    for(String db : dbs){
        System.out.println(db);
    }

5. Collection Mongo

Obtenez la collection / table.

    DB db = mongo.getDB("testdb");
    DBCollection table = db.getCollection("user");

Affichez toutes les collections de la base de données sélectionnée.

    DB db = mongo.getDB("testdb");
    Set tables = db.getCollectionNames();

    for(String coll : tables){
        System.out.println(coll);
    }

Note
Dans le SGBDR, la collection est égale à la table.

6. Enregistrer l'exemple

Enregistrez un document (données) dans une collection (table) nommée «utilisateur».

    DBCollection table = db.getCollection("user");
    BasicDBObject document = new BasicDBObject();
    document.put("name", "example");
    document.put("age", 30);
    document.put("createdDate", new Date());
    table.insert(document);

Reportez-vous à ceJava MongoDB insert example.

7. Exemple de mise à jour

Mettez à jour un document où «nom = exemple».

    DBCollection table = db.getCollection("user");

    BasicDBObject query = new BasicDBObject();
    query.put("name", "example");

    BasicDBObject newDocument = new BasicDBObject();
    newDocument.put("name", "example-updated");

    BasicDBObject updateObj = new BasicDBObject();
    updateObj.put("$set", newDocument);

    table.update(query, updateObj);

Reportez-vous à ceJava MongoDB update example.

8. Rechercher un exemple

Recherchez le document où «nom = exemple» et affichez-le avec DBCursor

    DBCollection table = db.getCollection("user");

    BasicDBObject searchQuery = new BasicDBObject();
    searchQuery.put("name", "example");

    DBCursor cursor = table.find(searchQuery);

    while (cursor.hasNext()) {
        System.out.println(cursor.next());
    }

Reportez-vous à ceJava MongoDB search query example.

9. Supprimer l'exemple

Recherchez le document où «nom = exemple» et supprimez-le.

    DBCollection table = db.getCollection("user");

    BasicDBObject searchQuery = new BasicDBObject();
    searchQuery.put("name", "example");

    table.remove(searchQuery);

Reportez-vous à ceJava MongoDB delete example.

10. Bonjour le monde

Examinons un exemple complet Java + MongoDB, voir les commentaires pour s'expliquer d'eux-mêmes.

App.java

package com.example.core;

import java.net.UnknownHostException;
import java.util.Date;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.MongoClient;
import com.mongodb.MongoException;

/**
 * Java + MongoDB Hello world Example
 *
 */
public class App {
  public static void main(String[] args) {

    try {

    /**** Connect to MongoDB ****/
    // Since 2.10.0, uses MongoClient
    MongoClient mongo = new MongoClient("localhost", 27017);

    /**** Get database ****/
    // if database doesn't exists, MongoDB will create it for you
    DB db = mongo.getDB("testdb");

    /**** Get collection / table from 'testdb' ****/
    // if collection doesn't exists, MongoDB will create it for you
    DBCollection table = db.getCollection("user");

    /**** Insert ****/
    // create a document to store key and value
    BasicDBObject document = new BasicDBObject();
    document.put("name", "example");
    document.put("age", 30);
    document.put("createdDate", new Date());
    table.insert(document);

    /**** Find and display ****/
    BasicDBObject searchQuery = new BasicDBObject();
    searchQuery.put("name", "example");

    DBCursor cursor = table.find(searchQuery);

    while (cursor.hasNext()) {
        System.out.println(cursor.next());
    }

    /**** Update ****/
    // search document where name="example" and update it with new values
    BasicDBObject query = new BasicDBObject();
    query.put("name", "example");

    BasicDBObject newDocument = new BasicDBObject();
    newDocument.put("name", "example-updated");

    BasicDBObject updateObj = new BasicDBObject();
    updateObj.put("$set", newDocument);

    table.update(query, updateObj);

    /**** Find and display ****/
    BasicDBObject searchQuery2
        = new BasicDBObject().append("name", "example-updated");

    DBCursor cursor2 = table.find(searchQuery2);

    while (cursor2.hasNext()) {
        System.out.println(cursor2.next());
    }

    /**** Done ****/
    System.out.println("Done");

    } catch (UnknownHostException e) {
    e.printStackTrace();
    } catch (MongoException e) {
    e.printStackTrace();
    }

  }
}

Production…

{ "_id" : { "$oid" : "51398e6e30044a944cc23e2e"} , "name" : "example" , "age" : 30 , "createdDate" : { "$date" : "2013-03-08T07:08:30.168Z"}}
{ "_id" : { "$oid" : "51398e6e30044a944cc23e2e"} , "age" : 30 , "createdDate" : { "$date" : "2013-03-08T07:08:30.168Z"} , "name" : "example-updated"}
Done

Utilisons la console demongo pour vérifier la base de données créée «testdb», la collection «utilisateur» et le document.

$ mongo
MongoDB shell version: 2.2.3
connecting to: test

> show dbs
testdb  0.203125GB

> use testdb
switched to db testdb

> show collections
system.indexes
user
> db.user.find()
{ "_id" : ObjectId("51398e6e30044a944cc23e2e"), "age" : 30, "createdDate" : ISODate("2013-03-08T07:08:30.168Z"), "name" : "example-updated" }

Télécharger le code source

Téléchargez-le -Java-mongodb-hello-world-example.zip (13 Ko)