Todos hemos trabajado con Java y JDBC para acceder a las distintas bases de datos SQL (Oracle,SQLServer,MySQL). Poco a poco tendremos que irnos haciendo a la idea de comenzar a trabajar con bases de datos NoSQL. Uno de los casos más habituales sera usar Java y MongoDB como base de datos documental. Conectarse a esta base de datos es relativamente fácil ya que disponemos de un conjunto de abstracciones bastante sencillas de entender. Lo primero que vamos a hacer es incluir una dependencia de Maven hacia el driver de Mongo en nuestro proyecto.
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>2.12.4</version> </dependency>
Una vez tenemos el driver asignado el siguiente paso es crear un programa sencillo que se conecte a la base de datos de Mongo.
import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.MongoClient; public class Principal { public static void main(String[] args) { try { MongoClient mongo= new MongoClient(); DB db= mongo.getDB("Prueba"); DBCollection coleccion= db.getCollection("Persona"); BasicDBObject objeto= new BasicDBObject(); Persona p= new Persona("pepe","perez"); objeto.put("nombre",p.getNombre() ); objeto.put("apellidos",p.getApellidos()); coleccion.insert(objeto); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
El programa es muy sencillo pero al ser todos conceptos nuevos vamos a desglosarlo.
El programa se divide en tres pasos:
- En el primer paso usamos un cliente para conectarnos a Mongo desde Java. No necesitamos pasar el puerto o el servidor como parámetros porque se trata de algo local y usa los parámetros por defecto.
- El segundo paso creamos una colección que no es ni más ni menos que un grupo de documentos con los que vamos a trabajar. En nuestro caso la colección es de Personas.
- En el último paso creamos un objeto persona y pasamos sus parámetros a un BasicDBObject que hace referencia a un documento concreto. Realizada esta última operación insertamos en la base de datos el registro.
Java MongoDB y RoboMongo
Una de las herramientas más habituales para trabajar con MongoDB es RoboMongo que nos permite acceder al servidor desde un interface amigable.
Esto nos sirve de primera toma de contacto con Java y MongoDB. Pero es fácil darse cuenta que estamos accediendo de una forma muy similar a JDBC. En futuros artículos nos orientaremos más hacia el mundo de JPA e Hibernate donde el nivel de abstracción es superior.
Otros artículos relacionados:
En donde descargo el driver mongodb para java
Del repositorio de Maven http://mvnrepository.com/ .Puedes revisar también mis artículos sobre Maven. https://www.arquitecturajava.com/maven-i/
muchas gracias Cecilio
una vez mas un ejemplo sencillo y facil de entender
así da gusto 🙂
Gracias 🙂
me alegro que te haya sido de utilidad 🙂
Hola Cecilio, muy buen post Me salio una duda ,si bien no es asi como java-noSql es referente a NoSql , tengo duda, si tengo una aplicacion empresarial donde se tiene un ABC de catalogos, algunos con relaciones entre si, por ejemplo doy de alta puestos, y luego personas, donde cada persona tiene un puesto, haciendo que no pueda borrar un puesto, por que tiene peronsas asocidas. Facilmente lo veo en una tabla de Puestos y Pesonal, o algo asi, pero en NoSql si bien se podria , tiene alguna venja utilizar NoSql en este tipo de esquemas?? o es… Read more »
NoSQL esta más orientado hacia bases de datos que no sean de gestión sino de agrupación y posterior análisis.Recuerda que MongoDB no soporta transacciones por ejemplo.