Olá desenvolvedores, então continuando a falar sobre DataTables na parte 4 deste tutorial implementaremos o DAO – Data Access Object. O DAO é de uma classe para se conectar ao banco de dados, processá-los e carregar os dados para a tabela. Assim, todas as operações do banco de dados deverão obrigatoriamente passar pelo DAO.

CLASSE DAO

E como sempre fazemos ao adotar boas práticas, o primeiro passo será a criação de um package dao dentro da pasta src(source). E dentro do pacote crie a classe DaoUsuario.java clicando com o botão direito do mouse sobre o pacote.

Com a classe criada, em seu escopo declare a classe de conexão. Na sequência implemente o construtor que irá receber a conexão com o banco de dados. Dessa forma quando instanciarmos o objeto a conexão será automaticamente estabelecida.

O passo seguinte é a implementação de um método para trazer os dados da base de dados. Mas primeiro precisaremos de um objeto para representar os dados do banco. E para este fim criaremos em um package entidades que receberão as classes que representam o banco de dados.

Assim crie a classe Usuario para representar a tabela no banco de dados. Esta classe implementará as variáveis de id, login e senha, bem como os respectivos métodos de setters e getters para cada atributo.

private String login;
private String senha;
private String id;

Agora sim podemos criar o método que retornará uma lista de usuários. É importante ressaltar que este método deverá lançar uma exceção para cima, instanciar e retornar a lista de usuários.

E ainda no escopo do método List<Usuarios> o próximo passo é criar o SQL que irá listar todos os atributos da tabela usuário.

String sql = “select * from usuario”;

Após implementar a Query que listará todos os dados, o PreparedStatement receberá a variável sql e preparará os parâmetros para serem inseridos no banco de dados com segurança. E a partir da execução da instrução que consulta o banco de dados o ResultSet retornará os dados.

MONTANDO A LISTA DE DADOS

Sabemos que o sql poderá retornar nenhum usuário, um ou vários, assim para que seja possível a leitura da lista de usuários que o sql irá retornar implementaremos um laço de repetição. Desse modo enquanto existir usuários o while continuará a ser executado.

No escopo do laço procederemos com a montagem da lista de usuários. Assim, enquanto existir um novo resultado, um novo objeto de usuário deverá ser criado. E neste objeto “setaremos” o ID, login e senha.

Depois de setar os atributos, ainda dentro do escopo do laço de repetição adicionaremos o usuário que foi criado a lista.

Usuários.add(usuario);

Lembrando que é preciso declarar/instanciar o DaoUsuario na servlet CarregarDadosDataTable.java

Private DaoUsuario daoUsuario = new Daousuario();

E o DaoUsuario retornará dentro do método doGet() a lista de usuários, e, este retorno deverá estar dentro de um bloco try, e consequente trataremos a exceção dentro do bloco catch.

Try{
List<Usuario> usuarios = daoUsuario.getUsuarios();
}

Dessa forma, se o processamento cair dentro da exceção, por meio do código de status 500, informaremos que um erro dentro do servidor HTTP impediu que a solicitação fosse atendida.

E ainda dentro da servlet, logo após instanciarmos o objeto usuario, implementaremos uma verificação. Se existe usuário, o fluxo do processamento entra na condição e cria o JSON, que deverá implementado atendendo a essas necessidades.

TRABALHANDO COM JSON

Desse modo atente-se para os ajustes que precisarão ser realizados na implementação do JSON. Assim, no cabeçalho do JSON, em recordsTotal e recordsFiltere onde são definidos a quantidade de usuários, passaremos o tamanho da lista e ao final concatenamos a variável data.

Entretanto, antes do cabeçalho do JSON, declare a variável data que deverá ser do tipo String e vazia.

String data = “”;

E moveremos os dados de criação da tabela para dentro de um laço de repetição. E os dados do usuário serão armazenados na variável de String data.

Mas para que um erro não ocorra, quando o último usuário for processado não poderemos inserir a vírgula, é preciso tratar para que isso não acontecerá. Então declararemos uma variável do tipo inteiro que receberá o tamanho da lista e um index que starta em 1.

int totalUsuarios = usuarios.size();
int index = 1;

Então se o index for menor que o totalUsuarios adicionaremos a vírgula e incrementamos o index.

if(index < totalUsuarios){
data+=";";
}
index++;

EM POUCAS PALAVRAS

Assim encerramos mais um tutorial e também a séria de tutoriais sobre DataTables. Agora temo uma tabela dinâmica onde os dados estão sendo carregados perfeitamente. E se você não compreende JSON e Ajax, recomendo fortemente que estude e aprenda e igualmente que leia a documentação do DataTables, para que possa conhecer todas as possibilidades que ele oferece. Eu fico por aqui e nos vemos no próximo tutorial.