Este tutorial es un poco mas avanzado,es de esos tutoriales sueltos que están dedicados a los usuarios con cierta experiencia en java,así que no es igual que los que hasta ahora hemos estado viendo.
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:
En este caso hoy por hoy esta el 2.9.3 así que pueden usar wget en la terminal,para descargar:
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:
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:
Bien,ahora vamos a ver algunos ejemplos en funciones:
Como ver las colecciones y usar una:
Ahora una funcion para mostrar los elementos de una coleccion:
Insertar elementos,para insertar valores en una base de datos creamos un objeto BasicDBObject en mongo seria así:
En java esto se ve así:
O usando una clase anónima:
Por ejemplo una función para añadir 100 elementos:
Si quisieramos hacer algo mas avanzado como en mongo esto:
En java luce asi:
O algo mas avanzado,en mongo:
En java:
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:
Para borrar una base de datos usamos:
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
Leer más...
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