Olá desenvolvedores, o tutorial de hoje, DAO & BANCO DE DADOS, traz a criação da rotina necessária para cadastrar os números de telefone no banco de dados. Nós já criamos a nossa página de cadastro em JSP e implementamos em Java os requisitos necessários para prosseguir agora com a persistência de dados.

No banco de dados PostgreSQL ou no seu pgAdmin selecione primeiramente a sequence. O primeiro passo será a criação de uma sequência para que de forma automática sejam criados valores de chave primária. Esta sequência é um objeto do banco de dados que permite que sejam gerados inteiros únicos.

CRIANDO UMA SEQUÊNCIA

Após selecionar o objeto sequence clique no Query Tool para abrir o SQL Editor e copie a sequência de comandos exemplificados na imagem.

TABLE TELEFONES

O passo seguinte após a criação da sequência é a tabela telefone com todos os campos, id, número, tipo, e todos do tipo character e o usuário que será um bigint.

A query especificada abaixo é a linha responsável pela criação da sequência automática, por gerar o id.

Id bigint NOT NULL  DEFAULT  nextval (‘fonesequence’::regclass)

CRIANDO O OBJETO BEAN

No package beans clique com o botão direito do mouse para criarmos uma classe Java com os atributos id, número, tipo e usuário.

Clicando em uma área livre escolha a opção source >> Generate Getters and Setters… >> selecione todas as opções >> Generate.

CLASSE DE CONEXÃO

Agora criaremos também uma classe de conexão especificamente para o cadastro de telefones, a classe DaoTelefones.

A classe DAO – Data Access Object ou objeto de acesso aos dados é um padrão em desenvolvimento de aplicações que precisam persistir os dados. Assim é possível separar as regras de negócio das regras de acesso ao banco de dados. Dessa forma, todas as operações e funcionalidades relacionadas com o banco de dados devem obrigatoriamente passar pela classe DAO.

Observe na imagem abaixo que o objeto Connection foi instanciado e o método construtor implementado.

Como mencionado acima todas as operações relacionadas ao banco de dados são de responsabilidade da classe DAO. É dentro deste contexto que implementaremos o método salvar que como parâmetro receberá o objeto Bean Telefones.

public void salvar(Telefones telefone){
}

Dentro de um bloco try/catch procederemos com as demais implementações do método, como a Query responsável por inserir os dados que serão passados por parâmetro na base de dados.

E para a execução da instrução SQL utilizaremos o PreparedStatement. E por sua vez a variável insert estabelecerá a conexão e injetará os dados em suas respectivas posições. E para executar a Query o insert.execute(), e se tudo fluir corretamente os dados serão “comitados”.

Entretanto se algum tipo de falha ocorrer durante a tentativa de salvar os dados um rollback será o responsável por fazer com que a base de dados volte ao seu estado anterior.

LISTANDO OS TELEFONES

Precisaremos em algum momento listar os números de telefones, desse modo veja abaixo a assinatura do método para listá-los.

O escopo do método recebe inicialmente um select que irá realizar a consulta na tabela telefone do banco de dados onde o usuário for igual ao código passado por parâmetro.

String sql = “SELECT FROM * telefone WHERE usuario = ” +user;

Assim enquanto houver dados, ou seja, para cada linha retornada o objeto Telefone será instanciado e os atributos “setados” e adicionados à lista.

MÉTODO DELETE

O escopo do método delete receberá a instrução SQL para deletar da base o usuário cujo login foi especificado. Esta instrução será executada pelo PreparedStatement.

E todo este bloco de código deverá estar dentro de um try/catch. Onde o bloco catch, implementará um novo bloco try/catch aninhado. Este por sua vez, receberá um rollback, assim, caso algo falhe o banco voltará o estado anterior. E se tudo fluir corretamente daremos um commit na conexão.

EM POUCAS PALAVRAS

Então iniciamos a conexão, e em salvar recebemos o objeto Telefone, após os telefones do usuário que tenha o código igual ao user passado por parâmetro. Dessa forma conseguimos trazer apenas os números de telefone do usuário que está sendo editado. E por fim podemos deletar o telefone que é passado por id. Espero que tenham gostado, nos vemos no próximo tutorial.