COMUNICAÇÃO ENTRE JAVA E MONGODB

Daniel Dias
Daniel Dias
Published in
5 min readDec 8, 2016

A Quinta postagem do blog será sobre a parte prática da minha monografia de especialização em Desenvolvimento Java. Neste capitulo irá aprender a usar MongoDB juntamente com Java.

Boa Leitura.

Segundo o site da Oracle,

“Java é uma linguagem de programação e plataforma computacional lançada pela primeira vez pela Sun Microsystems em 1995. Existem muitas aplicações e sites que não funcionarão, a menos que você tenha o Java instalado, e mais desses são criados todos os dias. O Java é rápido, seguro e confiável. De laptops a data centers, consoles de games a supercomputadores científicos, telefones celulares à Internet, o Java está em todos os lugares!”

Segundo site do MongoDB (2016) para uma aplicação se comunicar com o MongoDB, precisamos de uma biblioteca cliente que chamamos de drivers. Estes drives lidam com toda a interação com o banco de dados em uma linguagem apropriada para a aplicação.

De acordo com Lennon (2012), “Drives oficiais disponíveis para C, C#, C++, Haskell, Java, JavaScript, Perl, PHP, Python, Ruby e Scala, com uma ampla variedade de drives suportados pela comunidade disponível para outras linguagens”.

OBTENDO O AMBIENTE DE TRABALHO

Nesta seção obteremos o nosso ambiente de desenvolvimento para trabalhar com o mongo no Java.

Inicialmente obteremos uma IDE para esta trabalhando com o Java, utilizaremos a plataforma eclipse, por ser considerada uma das melhores IDE para desenvolvimento na linguagem Java:

CRIANDO UM PROJETO JAVA COM MONGO

Iremos desenvolver uma simples aplicação Java utilizando o maven para esta obtendo o driver do mongo para sua conexão.

  • Vá em File → New → Maven Project e configure da conforme as figuras 43 e 44
43

Figura 43 — Novo Projeto Maven Fonte: Gerado pelo Eclipse[/caption]

44

Figura 44 — Configuração do Projeto Maven. Fonte: Gerado pelo Eclipse.[/caption]

Após seguir como demonstrada nas figuras 43 e 44, será gerada um projeto no eclipse chamado JavaMongo. Dentro deste projeto contém um arquivo chamado pom.xml, nele faremos umas configurações para o projeto bem como adicionar o driver do mongo para Java, como pode visto na figura 45:

Figura 45 — Adicionado o MongoDrive Fonte: Gerado pelo Eclipse

Conforme a figura 45, no arquivo pom.xml, adicionamos o driver do mongo como dependência do projeto, que ao salva o arquivo o maven irá fazer o download da biblioteca especificada, assim com outras bibliotecas que o mongo drive necessita.

A partir deste momento daremos início à criação das classes Java para funcionar com o mongodb.

CRIANDO A CONEXÃO

Segundo o site do Mongodb, o MongoDrive fornece 5 maneiras de está se conectando nossa aplicação com o banco, como observado na figura 46:

Figura 46 — Conexão com MongoDBB Fonte: Autoria Própria

Conforme visto na figura 46, foram exemplificadas as maneiras de está se conectando uma aplicação java. Ela é semelhante as conexões de bancos relacionais, principalmente na variável chamada quintoExemplo, onde é passada um endereço para sua conexão.

Ao executarmos esta classe, será criado automaticamente um banco de dados chamados TCC, caso o mesmo não exista.

INSERINDO DADOS NO BANCO

Para criar um documento, utilizamos a classe Document do mongo driver. No mongo driver, os métodos insertOne() e insertMany() estão presentes e são utilizados da mesma forma que no mongo shell e ainda podemos fazer uso de documentos incorporados.

Antes de estarmos inserindo documentos, precisaremos criar uma collection para esta armazenando os dados.

A figura 47, exemplifica a utilização tanto do método insertOne quanto do insertMany, acompanhado da criação da coleção:

Figura 47 — Inserir Autoria Própria

CONSULTANDO OS DADOS

Para retornar os dados utilizamos também o método find() que foi descrito em capítulo sobre o mongo shell.

Segundo o site do MongoDB, O método find() retorna uma instância de findIterable, que nos fornece uma interface fluente para encadear ou controlar as operações do find. Usando o método iterator() podemos obter um iterador sobre o conjunto de documentos que combinavam com a consulta e repita.

Podemos também querer retornar apenas um documento, através do método first() sobre o find(). Isso é útil para consultas que só deve corresponder a um único documento. A figura 48 demonstra o uso desses dois métodos:

Figura 48- Consultando Autoria Própria

ATUALIZANDO OS DADOS

Assim com o insert, o mongo drive oferece os mesmos métodos de update do shell que são updateOne e updateMany(). Esses dois métodos recebem dois argumentos para esta atualizando o documento, um é o critério de busca para o documento e a outra é um documento que contém os novos dados para atualização. A Figura 49 demonstra o uso dois métodos de update:

Figura 49 - Alterando Autoria Própria

DELETANDO DADOS

O mongo drive contém métodos para remover documento de uma coleção. Os métodos correspondentes são deleteOne e deleteMany, que tem o mesmo funcionamento do que foi apresentado no mongo shell. A figura 50 demonstra o uso destes dois métodos:

Figura 50 - Deletando Autoria Própria

Algo importante a ser citado, tanto na operação de update quanto de deletar, foi incluída uma chama ao método eq, este método é utilizado para uma condição de busca no documento.

Para que o eclipse o reconheça será preciso importar sua classe com essa declaração :

import static com.mongodb.client.model.Filters.*;

Nesta sessão, abrangeu os primeiros passos com mongoDB e o Java, que permitiu executar as mesmas operações do mongo shell, que foi visto no capítulo anterior.

A sessão seguinte, iremos cria uma aplicação web simples utilizando o Java EE que usa Mongodb como armazenamento. Será demonstrada como esta tecnologia pode alavancar um cenário do mundo real usando construções simples.

REFERÊNCIAS

IBM – Lennon, Joe. Explore o MongoDB. 2011. Disponível em: < https://www.ibm.com/developerworks/br/library/os-mongodb4/ > Acesso em: 11 de maio 2016.

MongoDB. MongoDB Drivers and Client Libraries. 2016. Disponível em: < https://docs.mongodb.com/manual/applications/drivers/ >. Acesso em: 10 de junho 2016.

Oracle. O que é a Tecnologia Java e porque preciso dela? 2016. Disponível em: < https://www.java.com/pt_BR/download/faq/whatis_java.xml >. Acesso em: 10 de junho 2016.

--

--

Daniel Dias
Daniel Dias

SouJava Board Member, JCP Member, JSR-371 (MVC 1.0), JSR-382 (Config) specifications contributor, EG JSR-385 (UoM) and Eclipse Committer .