Olá desenvolvedores, seguindo com os tutoriais sobre banco de dados, linguagem SQL, JDBC e todo este ecossistema, falaremos hoje sobre o DAO – Data Access Object (Objeto de Acesso à Dados).

O DAO é um padrão para aplicações implementadas com linguagens de programação orientada a objetos e arquitetura MVC.  E que utilizam persistência de dados, onde existe a separação das regras de negócio das regras de acesso a banco de dados. E ainda, onde todas as funcionalidades de bancos de dados, tais como obter conexões, mapear objetos para tipos de dados SQL ou executar comandos SQL, devem ser feitas por classes DAO.

Em síntese, o DAO é a camada do sistema (pacotes, classes e métodos) que abstrai todo o acesso ao banco de dados separadamente da lógica de negócio da aplicação. É no DAO que implementamos os métodos do CRUD (Create – Read – Update – Delete). Bem como é por meio do DAO que as operações no banco de dados são realizadas.

Ainda sobre conceitos, podemos entender a persistência de dados como a garantia de que um dado foi salvo e que poderá ser recuperado quando necessário no futuro.

TESTANDO O BANCO DE DADOS

Antes de partimos para a implementação da camada de modelo, iremos efetuar um teste diretamente no banco de dados. Assim, tendo acessado a sua base de dados “posjava”, clique sobre o Schemas e selecione Tables.

Clique no botão Query Tools para escrever um código SQL, baseado na linguagem DDL – Linguagem de Definição de Dados.

Usaremos o comando “CREATE TABLE”, para criar a tabela “userposjava” e dentro dos parênteses definiremos as colunas da tabela. Informaremos os seguintes dados um ID do tipo bigint, nome que será do tipo character e tamanho (varying) padrão. O email sendo do mesmo tipo de dados que o nome. E por fim, a regra que determina o ID como a chave primária, e excute.  

CREATE TABLE userposjava(
id bigint not null,
nome character varying(255),
email charater varying(255),
constraint user_pk primaty key (id)
)

Tendo criado a tabela, agora vamos manipular estes dados, inserindo (insert) dados nela. Com a tabela selecionada clique novamente no botão Query Tools.

Na área de edição de código do SQL comece informando em qual tabela deseja inserir os dados, e quais colunas de dados serão inseridas.  Esta ação é realizada por meio do comando.

Insert into userposjava (id, nome, email)

Note, que por estarmos fazendo tudo manualmente, o ID também será informado manualmente, veja abaixo como inserimos os valores nos campos (coluna) da tabela.

VALUES (1, 'ALEX', alex@gmail.com);

Após a inserção dos dados execute (F5). Dê o comando SELECT * FROM userposjava, para ver todo o conteúdo da tabela.

Para inserir novos dados na tabela você pode clicar sobre a tabela com o botão direito >> Scripts > INSERT script. Mas aconselho que nesta fase onde você está aprendendo, que os insira na mão, não tenha preguiça, escreva os comandos.

CONSTRUINDO A CAMADA DE MODELO

Visto todos os importantes conceitos, e tendo criado a tabela e inserido algum dado a ela, é hora de colocar a mão na massa, construindo a camada de modelo. A camada de modelo (Model) é a responsável por gerenciar o comportamento dos dados através das regras de negócio, implementação de lógica e funções. É aqui que os dados são armazenados, manipulados e gerados para serem exibidos na View.

No diretório src/main criaremos um novo pacote qual chamaremos de model, dentro deste pacote crie a classe UserPosJava. Defina os atributos da classe e gere os métodos “getters and setters…

private long id;
private String nome;
private String email;

PADRÃO DAO

Finalmente criaremos o padrão de aplicações DAO. Clique então no diretório src/main criaremos um novo pacote qual chamaremos de dao. Dentro do pacote “dao” crie a classe UserPosDAO   .

Dentro da classe USerPosDADO estabeleceremos uma conexão e após deve-se implementar o construtor.

private Connection connection;

Dentro do construtor implemente o comando que injetará para dentro do objeto connection a classe SingleConnection.getconnection();, quando o objeto connection for iniciado.

public UserPosDAO() {
connection = singleConnection.getConnection();
}

Assim quando chamarmos o objeto UserPosDAO, ele instanciará dentro dele a conexão, o que nos permitirá realizar as operações de CRUD, inserir, atualizar, deletar.

EM POUCAS PALAVRAS

Fizemos a inserção dos dados em nosso sistema utilizando SQL puro, o que é bom para você praticar e saber como funciona. Mas precisamos poder fazer essa inserção de dados, assim como a atualização e exclusão de dados por meio do nosso sistema. É o que faremos no próximo tutorial. Então, eu fico por aqui, nos vemos no próximo.