Implementação CRUD Java com MongoDB

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();
}

Leave a Reply