Olá desenvolvedores, nesta parte 3 da série de tutoriais sobre o Datatables iremos criar uma conexão com o banco de dados, carregá-los e dar a resposta em formato JSON/HTTP para o jQuery captar estes dados e imprimir na tabela através da requisição Ajax.

E agora, conhecemos o formato que os dados devem ter para responder ao navegador e o datatables escrever os dados em tela. O próximo passo é escolher uma tabela no banco de dados, lembrando que trabalhamos com o PostgreSQL. Iremos então proceder com a conexão com o banco de dados, carrega-los, traduzi-los para um formato que o JSON aceita e por fim carregar a resposta.

Reaproveitando a base de dados curso-jsp do módulo anterior, utilizaremos a tabela usuário que recebe os dados de login e senha do usuário.

CLASSE DE CONEXÃO

Então agora criaremos a nossa classe de conexão com o banco de dados. Mas primeiro como sempre fazemos com o objetivo de manter o projeto com uma estrutura organizada, crie um novo package dentro da pasta src(source).

Assim, dentro do package connection, criaremos a classe Java que será a responsável por estabelecer a conexão com o banco de dados. O nome desta classe será ConnectionDataBase.java.

Mas para que a conexão com a base de dados seja possível precisaremos do “PostgreSQL JDBC Driver”. E você poderá fazer o download da biblioteca clicando aqui. Copie esta biblioteca para dentro da subpasta lib que fica dentro da pasta WEB-INF. Depois de adicioná-la a pasta lib clique com o botão direito sobre a biblioteca >> Build Path >> Add to Build Path.

Agora sim é hora de implementar a classe, e a primeira ação a fazer é declarar o caminho do banco de dados. Neste caminho informaremos o SGBD utilizado, o endereço do servidor local, a base de dados utilizada e um parâmetro de reconexão automática.

private Static String banco = “jdbc:postgresql://localhost:5432/curso-jsp?autoReconnect=true”;

é preciso declarar também a senha e o usuário do banco de dados. E, obedecendo as boas práticas do padrão de projeto Singleton, declaramos estas variáveis como estáticas porque o valor delas não irão mudar, isto é, a conexão é única e seus valores não mudam.

private static String password = “admin”;
private static String user = "postgres";

E precisaremos também de uma API do java.sql para prover uma conexão com o banco de dados.

private static Connection connection = null;

MÉTODOS DE CONEXÃO

O primeiro método pra realizar a conexão que iremos implementar é um construtor estático. Este construtor, chamará em qualquer momento em que a classe for chamada, o método conectar(). E o conectar() implementará uma validação para que a conexão seja realizada apenas uma vez.

static {
conectar();
}

E claro, teremos o construtor padrão que também chamará o método conectar().

Public ConnectionDataBase() {
conectar();
}

E finalmente implementaremos o método conectar() que será estático, e que em seu escopo deve receber o tratamento de exceção com a implementação do try/cacth.

O bloco catch lança uma exceção para cima (Java) chamando a superclasse das exceções RuntimeException. Ele constrói uma nova exceção em tempo de execução e imprime uma mensagem na tela. Assim, para exibir além da mensagem o problema, concatenaremos a exceção que captura erro.

throw new RuntimeException(“Erro de conexão com o banco de dados” + exception.getMessage());

E dentro do bloco try faremos uma verificação. Se a variável de conexão “connection” for igual a nulo, criamos a conexão. Mas se a variável de conexão for diferente de nulo será retornada a conexão já existente.

E para que seja possível a conexão é necessário passar a classe de drive do banco de dados, bem como o banco de dados, o usuário e a senha.

E falta agora criar o método de retorno, cuja única função é retornar a conexão do banco de dados.

CHAMANDO A CLASSE DE CONEXÃO

A classe de conexão ConnectionDataBase.java será chamada a partir da classe filter, FilterAutenticacao.java. O filter traz um método init(), que é chamado sempre que nossa aplicação é iniciada. Desse modo antes de qualquer implementação declaramos a conexão.

private static Connection connection;

E dentro do escopo do método init() estabelecemos a conexão com o banco de dados.

EM POUCAS PALAVRAS

E na parte três deste tutorial sobre datatables temos a conexão sendo realizada. O próximo passo é a criação de um DAO para se conectar ao banco de dados e carregar os dados da tabela. Eu fico por aqui e nos vemos no próximo tutorial sobre datatables.