Aplicação Java \ MongoDB
Aplicação Java \ MongoDB
Neste pequeno tutorial demonstraremos a instalação do MongoDB, um sistema de banco de dados
orientado á documentos, NoSQL(not Only SQL – or Polyglot Persistence) , no MongoDB o equivalente
aos registros são os documentos, que utilizam a sintaxe JSON.
Para um primeiro passo, vamos à instalação no Windows, começando pelo download:
http://www.mongodb.org/downloads
Clique no arquivo baixado
Clique em executar
Sugerimos instalação completa
Estrutura da instalação do MongoDB neste caso instalado em C:\Program Files\MongoDB
Abra o prompt de comando
Entre no diretório C:\>cd "Arquivos de Programas"\MongoDB\Server\3.0\bin
Digite o comando mongod
Isto ocorre porque por default o MongoDB armazena seus bancos de dados no diretório
/data/db (C:\data\db se estiver usando Windows). A solução é simples: crie este diretório
C:\data e as pastas dentro dele \db e logs\, existe outra forma de iniciar o processo mongod
com o parâmetro -dbpath (porém para ficar mais didádico e mais prático utilizaremos a
criação do diretório como descrito anteriormente.
Digite novamente o comando mongod
OK serviço MongoDB iniciado
Não feche este prompt
Abra outro prompt e digite:
Entre no diretório : C:\Arquivos de Programas\MongoDB\Server\3.0\bin>
Digite mongo
Digite: show dbs
Este comando lista os banco existentes, no meu caso três
Digite db.help para visualizar alguns comandos do MongoDB
Exemplo de comando : db.getMongo();
Utilize o comando : use <Nome do Banco>
Definir qual banco será utilizado (detalhe, ele ainda não precisa existir para ser utilizado) e
para “materializá-lo” basta fazer um insert em uma “tabela” que também não precisa existir, o
Mongo DB se encarregará de criar toda a estrutura para salvar seus dados, abaixo um
exemplo : banco de dados sophsDB não existe, ele será criado e será inserido um registro
no qual possuirá um formato Json.
Mostra os bancos existentes : > show dbs
Define o banco utilizado: > use sophsDB
Insere um registro: >db.registro.insert({id:1, name:”Sophia”});
Aplicação Java \ MongoDB
Configuração do ambiente para o exemplo utilizado
Produto Versão
JDK 1.6.X
Eclipse Luna Service Release 1 (4.4.1)
mongo-java-driver 2.12.1
MongoDB 3.0.5
Este programa é bem simples, apenas para facilitar a didática da utilização do MongoDB, no
qual só possui duas classes (MongoDBExample,User) para o exemplo, em um próximo manual
criaremos com mais funcionalidades.
Classe MongoDBExample
package br.com.giva.main;
import java.net.UnknownHostException;
import br.com.giva.model.User;
import com.mongodb.BasicDBObject;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
public class MongoDBExample {
public static void main(String[] args) throws UnknownHostException {
User user = createUser();
DBObject doc = createDBObject(user);
MongoClient mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("mongoDBGiva");
DBCollection col = db.getCollection("users");
DBCursor cursor = col.find();
//insert example
col.insert(doc);
//read example
DBObject query = BasicDBObjectBuilder.start().add("id",
user.getId()).get();
cursor = col.find(query);
while(cursor.hasNext()){
System.out.println(cursor.next());
}
//update example
user.setName("Dany Sophs");
BasicDBObject newDocument = new BasicDBObject();
newDocument .append("$set",new BasicDBObject().append("nome",
user.getName()));
BasicDBObject searchQuery = new BasicDBObject().append("nome",
"Dany");
col.update(searchQuery, newDocument );
query = BasicDBObjectBuilder.start().add("id",
user.getId()).get();
cursor = col.find(query);
while(cursor.hasNext()){
System.out.println(cursor.next());
}
//delete example
col.remove(query);
query = BasicDBObjectBuilder.start().add("id",
user.getId()).get();
cursor = col.find(query);
if(cursor.hasNext()){
System.out.println(cursor.next());
}
else{
System.out.println("Deletado");
}
//insert again
col.insert(doc);
mongo.close();
}
private static DBObject createDBObject(User user) {
BasicDBObjectBuilder docBuilder =
BasicDBObjectBuilder.start();
docBuilder.append("id", user.getId());
docBuilder.append("nome", user.getName());
docBuilder.append("idade", user.getIdade());
docBuilder.append("sexo", user.getSexo());
return docBuilder.get();
}
private static User createUser() {
User u = new User();
u.setId(u.getId()+1);
u.setName("Dany");
u.setIdade(18);
u.setSexo("F");
return u;
}
}
Classe User
package br.com.giva.model;
public class User {
private int id;
private String name;
private int idade;
private String sexo;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
}
Utilizando o Debug na classe (MongoDBExample) podemos verificar a inserção pelo console
Ou podemos neste momento (antes de executar o delete) visualizar o registro pelo console
do mongoDB: db.users.find();
Em modo debug podemos verificar o update pelo console, neste caso foi atualizado somente
o nome de “Dany” para “Dany Sophs” conforme código abaixo:
Este comando está atualizando apenas o campo valor do nome
user.setName("Dany Sophs");
BasicDBObject newDocument = new BasicDBObject();
newDocument.append("$set",new BasicDBObject().append("nome", user.getName()));
BasicDBObject searchQuery = new BasicDBObject().append("nome", "Dany");
col.update(searchQuery, newDocument );
No prompt de comando do mongoDB podemos visualizar a alteração
Neste ponto estamos executando o delete do registro conforme print abaixo
No prompt do mongoDB podemos visualizar a exclusão do registro.
Executando o comando: db.users.find();
Espero ter ajudado. .