Introdução
Este artigo demonstra a integração do MongoDB com CRUD em Java.
Pré-requisitos
Instalação do MongoDB – Veja artigo Instalando MongoDB
Projeto GitHub
Você pode baixar o projeto whs-test
O Projeto
Trata-se de um Projeto Maven com dependência com o mongo-java-driver e gson.
O Código
Método create
Conectando ao MongoDB
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
Acessando um Banco de Dados
MongoDatabase db = mongoClient.getDatabase("test");
Acessando uma Collection
Através desse acesso é possível efetuar as operações no Banco de Dados como consulta, inclusão, alteração e exclusão.
MongoCollection<Document> collection = database.getCollection("test");
Criando o objeto Document
Map<String, Object> map = g.fromJson(jsonContent, new TypeToken<Map<String, Object>>() {}.getType());
Document doc = new Document(map);
Inserindo o registro
collection.insertOne(doc);
Método update
Listando todos os registros
Para este exemplo, buscamos todos os registros e atualizamos o campo “updated”. Pode-se utilizar uma buscas específica de um determinado registo.
MongoCursor<Document> cursor = collection.find().iterator();
Atualizando os objetos Document
while (cursor.hasNext()) {
Document doc = cursor.next();
GsonBuilder gsonBuilder = new GsonBuilder();
Gson gson = gsonBuilder.create();
Map<String,Object> mapDoc = (Map)gson.fromJson(doc.toJson(), Map.class);
mapDoc.put("updated", new Date().toString());
Document docUp = new Document(mapDoc);
}
Atualizando os registros no Banco de Dados
No bloco while, invocamos o método updateOne (atualiza o primeiro registro a encontrar o critério).
collection.updateOne(doc, new Document("$set", new Document("updated", new Date())));
Método delete
Para o exemplo abaixo, buscamos o registro a ser excluído através de uma busca pelo campo “tableName” igual a “Customer”.
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
MongoDatabase db = mongoClient.getDatabase("test");
MongoCollection<Document> collection = db.getCollection("test");
collection.deleteOne(Filters.eq("tableName","Customer"));
Método list
No método list, buscamos todos os registros do banco “test” e escrevemos no console o respectivo JSON.
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
MongoDatabase db = mongoClient.getDatabase("test");
MongoCollection<Document> collection = db.getCollection("test");
MongoCursor<Document> cursor = collection.find().iterator();
try {
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
} finally {
cursor.close();
}