15 min de leitura
Introdução MongoDB + Java
Rápida exemplificação da integração do MongoDB com o Java.
Antes de começarmos usando o MongoDB nos seus programas java, nós precisamos ter certeza que o driver JDBC do MongoDB e o Java estão configurados na sua máquina. Você pode verificar o tutorial java para instalação java na sua máquina. Agora, vamos verificar com configurar o driver JDBC do MongoDB.*Você precisa baixar o jar do caminho: Download mongo.jar. Tenha certeza de que está baixando a última versão deste.
- Você precisa incluir o mongo.jar dentro do seu projeto.
Conectando a base de dados
Para conectar a base de dados, você precisa especificar o nome do banco de dados, se o banco de dados não existir o mongodb cria este automaticamente.
Trecho de código para conectar o banco de dados pode ser o seguinte:
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;
public class MongoDBJDBC{
public static void main( String args[] ){
try{
// Conectando ao servidor mongodb
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Conecta ao banco de dados test
DB db = mongoClient.getDB( "test" );
System.out.println("Banco de dados conectado com sucesso");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Autenticacao: "+auth);
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
Agora, vamos compilar e executar o programa a seguir para criar nosso banco de dados. Você pode mudar o caminho de acordo com sua necessidade. Nos vamos assumir que a versão corrente do driver JDBC mongo-2.10.1.jar é a disponível no nosso caminho corrente.
$ javac MongoDBJDBC.java
$ java -classpath ".:mongo-2.10.1.jar" MongoDBJDBC
Banco de dados conectado com sucesso
Autenticacao: true
Se estiver usando em uma máquina Windows, então você pode compilar e executar seu código da forma a seguir:
$ javac MongoDBJDBC.java
$ java -classpath ".;mongo-2.10.1.jar" MongoDBJDBC
Banco de dados conectado com sucesso
Autenticacao: true
O valor de authdeverá ser se o nome de usuário e senha estão válidos e ativos para o banco de dados selecionado.
Criando uma coleção
Para criar uma coleção, o método createCollection()
da classe com.mongodb.DB é usado.
Trecho de código para criar uma coleção:
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;
public class MongoDBJDBC{
public static void main( String args[] ){
try{
// Conectar ao servidor mongodb
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Conecta ao banco de dados test
DB db = mongoClient.getDB( "test" );
System.out.println("Banco de dados conectado com sucesso");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Autenticacao: "+auth);
DBCollection coll = db.createCollection("mycol");
System.out.println("Colecao criada com sucesso");
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
Quando o programa é compilado e executado, este produzirá o seguinte resultado:
Banco de dados conectado com sucesso
Autenticacao: true
Colecao criada com sucesso
Obtendo/Selecionando uma coleção
Para obter/selecionar uma coleção de uma base de dados, o método getCollection()
da classe com.mongodb.DBCollection é usado.
Trecho de código para obter/selecionar uma coleção:
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;
public class MongoDBJDBC{
public static void main( String args[] ){
try{
// Conecta ao servidor mongodb
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Conecta ao banco de dados test
DB db = mongoClient.getDB( "test" );
System.out.println("Banco de dados conectado com sucesso");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Autenticacao: "+auth);
DBCollection coll = db.createCollection("mycol");
System.out.println("Colecao criada com sucesso");
DBCollection coll = db.getCollection("mycol");
System.out.println("Colecao mycol selecionada com sucesso");
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
Quando o programa é compilado e executado, este produzirá o seguinte resultado:
Banco de dados conectado com sucesso
Autenticacao: true
Colecao criada com sucesso
Colecao mycol selecionada com sucesso
Inserindo um documento
Para inserir um documento dentro do mongodb, o método insert()
da classe com.mongodb.DBCollection é usado.
Trecho de código para inserir um documento:
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;
public class MongoDBJDBC{
public static void main( String args[] ){
try{
// Conecta ao servidor mongodb
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Conecta ao banco de dados test
DB db = mongoClient.getDB( "test" );
System.out.println("Banco de dados conectado com sucesso");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Autenticacao: "+auth);
DBCollection coll = db.getCollection("mycol");
System.out.println("Colecao mycol selecionada com sucesso");
BasicDBObject doc = new BasicDBObject("title", "MongoDB").
append("description", "database").
append("likes", 100).
append("url", "http://www.tutorialspoint.com/mongodb/").
append("by", "tutorials point");
coll.insert(doc);
System.out.println("Documento inserido com sucesso");
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
Quando o programa é compilado e executado, este produzirá o seguinte resultado:
Banco de dados conectado com sucesso
Autenticacao: true
Colecao mycol selecionada com sucesso
Documento inserido com sucesso
Retornar todos os documentos
Para obter todos os documentos de uma coleção, o método find()
da classe com.mongodb.DBCollection é usado. Este método retorna um array o qual você precisa percorrer.
Trecho de código para retornar todos os documentos:
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;
public class MongoDBJDBC{
public static void main( String args[] ){
try{
// Conecta ao servidor mongodb
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Conecta ao banco de dados test
DB db = mongoClient.getDB( "test" );
System.out.println("Banco de dados conectado com sucesso");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Autenticacao: "+auth);
DBCollection coll = db.getCollection("mycol");
System.out.println("Colecao mycol selecionada com sucesso");
DBCursor cursor = coll.find();
int i=1;
while (cursor.hasNext()) {
System.out.println("Documento inserido: "+i);
System.out.println(cursor.next());
i++;
}
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
Quando o programa é compilado e executado, este produzirá o seguinte resultado:
Banco de dados conectado com sucesso
Autenticacao: true
Colecao mycol selecionada com sucesso
Documento inserido: 1
{
"_id" : ObjectId(7df78ad8902c),
"title": "MongoDB",
"description": "database",
"likes": 100,
"url": "http://www.tutorialspoint.com/mongodb/",
"by": "tutorials point"
}
Atualizando documentos
Para atualizar um documento da coleção, o método update()
da classe com.mongodb.DBCollection é usado.
Trecho do código para atualizar um documento:
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;
public class MongoDBJDBC{
public static void main( String args[] ){
try{
// Conecta ao servidor mongodb
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Conecta ao bando de dados test
DB db = mongoClient.getDB( "test" );
System.out.println("Banco de dados conectado com sucesso");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Autenticacao: "+auth);
DBCollection coll = db.getCollection("mycol");
System.out.println("Colecao mycol selecionada com sucesso");
DBCursor cursor = coll.find();
while (cursor.hasNext()) {
DBObject updateDocument = cursor.next();
updateDocument.put("likes","200")
col1.update(updateDocument);
}
System.out.println("Documento atualizado com sucesso");
cursor = coll.find();
int i=1;
while (cursor.hasNext()) {
System.out.println("Documento atualizado: "+i);
System.out.println(cursor.next());
i++;
}
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
Quando o programa é compilado e executado, este produzirá o seguinte resultado:
Banco de dados conectado com sucesso
Autenticacao: true
Colecao mycol selecionada com sucesso
Documento atualizado com sucesso
Documento atualizado: 1
{
"_id" : ObjectId(7df78ad8902c),
"title": "MongoDB",
"description": "database",
"likes": 100,
"url": "http://www.tutorialspoint.com/mongodb/",
"by": "tutorials point"
}
Apagando o primeiro documento
Para apagar o primeiro documento de uma coleção, você precisa primeiro selecionar os documentos usando o método findOne()
e depois usar o método remove da classe com.mongodb.DBCollection.
Trecho do código para deletar o primeiro documento:
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;
public class MongoDBJDBC{
public static void main( String args[] ){
try{
// Conecta ao servidor mongodb
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Conecta ao banco de dados test
DB db = mongoClient.getDB( "test" );
System.out.println("Banco de dados conectado com sucesso");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Autenticacao: "+auth);
DBCollection coll = db.getCollection("mycol");
System.out.println("Colecao mycol selecionada com sucesso");
DBObject myDoc = coll.findOne();
col1.remove(myDoc);
DBCursor cursor = coll.find();
int i=1;
while (cursor.hasNext()) {
System.out.println("Documento inserido: "+i);
System.out.println(cursor.next());
i++;
}
System.out.println("Documento apagado com sucesso");
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
Quando o programa é compilado e executado, este produzirá o seguinte resultado:
Banco de dados conectado com sucesso
Autenticacao: true
Colecao mycol selecionada com sucesso
Documento apagado com sucesso
Os métodos save()
, limit()
, skip()
, sort()
e etc serão explicados em um tutorial subsequente.
Espero poder ter ajudado! Até o próximo tutorial! :)
Fonte Traduzida: TutorialsPoint - MongoDB Java
Comentários