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.