Primero que nada yo les recomiendo que usen eclipse para un rápido trabajo,si no es así de todas formas se puede programar desde un editor común pero yo voy a usar Eclipse en este tipo de tutoriales.
Primero que nada descargamos el driver:
http://central.maven.org/maven2/org/mongodb/mongo-java-driver/2.9.3/
En este caso hoy por hoy esta el 2.9.3 así que pueden usar wget en la terminal,para descargar:
wget http://central.maven.org/maven2/org/mongodb/mongo-java-driver/2.9.3/mongo-java-driver-2.9.3.jar
Ahora creamos un proyecto en eclipse:
Nuevo Projecto Java-> Elegimos de nombre MonEjemplo // Por ejemplo
Le damos next y en Libraries le damos Add external Jars y elegimos el dirver .jar que descargamos:
Ahora pasamos a la pestaña Order and Export y palomeamos el driver:
Bien con esto listo vamos al src y creamos una nueva clase,yo la llame MainMongo y añadimos el static main:
Ahora si esta listo nuestra clase main,primero que nada importamos el driver:
import com.mongodb.*;
O podemos importar solo lo que usaremos como se ve mas abajo.
Primero que nada vamos a crear una conexión al localhost:
Primero añadimos una UnknownHostException al main,para poder usar la función,vamos a ver un esqueleto básico:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | import java.util.List; import java.net.UnknownHostException; import java.util.Set; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.Mongo; public class MainMongo { // Variable miembro privadas private Mongo conexion; // Conexion private DB database; // Base de datos private DBCollection collection; // Colleciones /** * @param args * @throws UnknownHostException */ public static void main(String[] args) throws UnknownHostException { // TODO Auto-generated method stub MainMongo ObjetoMongo = new MainMongo(); ObjetoMongo.conexion("localhost"); // Creamos una conexion } private void conexion(String host) throws UnknownHostException { this.conexion = new Mongo(host); // Definimos la variable miembro List |
Bien,ahora vamos a ver algunos ejemplos en funciones:
Como ver las colecciones y usar una:
1 2 3 4 5 6 7 8 9 | private void colecciones() { Set System.out.println("Colecciones de "+this.database.getName().toString()); for (String c : colls) { // Las mostramos System.out.println(c); } this.collection = this.database.getCollection("test"); // Definimos nuestra conexion con la coleccion System.out.println("Usando test"); // Esto no es real,ya que es un ejemplo,ya que si no tienes test no servira el ejemplo } |
Ahora una funcion para mostrar los elementos de una coleccion:
1 2 3 4 5 6 7 8 9 10 11 12 | private void mostrarelementos() { System.out.println("Todos los elementos :"); DBCursor cursor = this.collection.find(); // Buscamos todos los elementos en un cursor // Usamos un manejador de execepciones por si falla algo try { while(cursor.hasNext()) { // Miestras haya elementos nos movemos en el bucle System.out.println(cursor.next()); // Nos movemos al siguiente } } finally { cursor.close(); // Cerramos pase lo que pase } } |
Insertar elementos,para insertar valores en una base de datos creamos un objeto BasicDBObject en mongo seria así:
x = {"Elemento":1}}
db.test.insert(x)
En java esto se ve así:
BasicDBObject x = new BasicDBObject("Elemento : ", 1);
this.collection.insert(x);
O usando una clase anónima:
this.collection.insert(new BasicDBObject("Elemento : ", 1));
Por ejemplo una función para añadir 100 elementos:
1 2 3 4 5 6 | private void insertar() { System.err.println("Insertando elementos"); for (int i=0; i < 100; i++) { this.collection.insert(new BasicDBObject("Elemento : ", i)); } } |
Si quisieramos hacer algo mas avanzado como en mongo esto:
x = {name:"atheyus",sitio:"itimetux.com"}
En java luce asi:
BasicDBObject x = new BasicDBObject("name", "atheyus").append("sitio", "itimetux.com");
O algo mas avanzado,en mongo:
x = {name:"atheyus",sitio : { dominio:"itimetux.com",nombre:"Tiempo de Tux"}}
En java:
BasicDBObject x = new BasicDBObject("name", "atheyus").append("sitio",new BasicDBObject("dominio", "itimetux.com").append("nombre", "Tiempo de Tux"));
Y asi lo podemos hacer en muchos niveles.
Ahora que entendemos como definir objetos basicos de la db,podemos usar eso mismo para hacer una consulta:
Si quisiera buscar todos los registros que tengan de name atheyus así lo haríamos en mongo:
db.test.find({"name":"atheyus"})
En java esto seria así:
1 2 3 4 5 | BasicDBObject x = new BasicDBObject("name", "atheyus"); DBCursor cursor = this.collection.find(x); // Aqui usamos un bucle que recorra los valores |
Para borrar una base de datos usamos:
conexion.dropDatabase("test"); // test es la base de datos
Eso es todo :D
Referencias: http://docs.mongodb.org/
Ver el codigo ya que no se ven bien las letras entre Paréntesis angulares (de List y Set)y puede dar serios errores.
Codigo completo : MainMongo.java
buenas noches el archivo no esta disponible
ResponderBorrar