Olá desenvolvedores, o tutorial de hoje inicia a implementação de login utilizando JDBC e servlet. Já nos contextualizamos acerca do ecossistema do JSP – JavaServer Pages e também sobre servlets, além de termos trabalhado em nosso entendimento sobre como corrigir erros, que você pode ver neste link e também aqui.
Assim, neste tutorial criaremos uma classe para validar os parâmetros de login e senha no banco de dados. Se você não é aluno do curso de Formação Java Web, provavelmente deve estar um tanto quanto perdido, no tutorial “SERVLETS: ENTENDENDO E CRIANDO” e nos subsequentes a ele, você irá se atualizar e encontrar um vasto material também sobre JDBC.
CLASSE DAO | CONCEITOS
Contextualizados acerca do JDBC, cem como sobre servlts, temos a ideia de que um sistema que seja útil precisa persistir dados em algum ponto do seu funcionamento. Desse modo, o primeiro passo para a validação dos dados no banco é a criação da estrutura DAO – Data Access Object.
O DAO é uma classe cuja responsabilidade única é o acesso aos dados. A ideia é sempre manter um código organizado e de fácil manutenção, atribuindo a cada classe responsabilidades únicas. Assim sendo, somente por meio do DAO se dará o acesso aos dados, o que será feito a partir da instanciação de um objeto, o real responsável por acessar os dados.
Com o DAO iremos, como já falado, criar um objeto para gerenciar a obtenção e o armazenamento de dados. E por meio de uma interface ocultar do usuário o modo como o acesso ao banco se dará. E ainda, fornecer os dados do banco usando um objeto de transferência.
No tutorial “PADRÃO SINGLETON EM JAVA” estudamos sobre padrões de projeto (Design Pattern). E o DAO compreende um dos mais famosos padrões de projeto. É legal, como tudo está interligado, e ratifica a premissa de que em sua fase de aprendizagem jamais você deverá avançar com dúvidas. Sim, uma vez que um assunto pode estar direto ou indiretamente ligado a aquele que você não compreendeu bem, e assim, terá início a bola de neve do não entendimento.
IMPLEMENTAÇÃO DO DAO
A implementação do DAO começa com a criação do package dao dentro da subpasta src, clique com o botão direito do mouse sobre a pasta src >> new >> package. E dentro do pacote a classe DaoLogin. E na sequência, instancie o objeto Connection e implemente o construtor, onde iremos informar a atribuição da conexão com o banco de dados a variável connection.
Em outras palavras, a variável connection irá receber o objeto de conexão do banco de dados.
E agora iremos implementar a validação de login e senha no banco de dados, e para isso utilizaremos um select.
O método validarLogin() que retornará um boolean receberá como parâmetro duas Strings, login e senha respectivamente. E como se trata de um método de consulta ao banco de dados pode acontecer de uma exceção ser lançada. Precisaremos então do throws Exception, que na terminologia de programação falamos “lançar uma exceção para cima”.
No escopo do método a variável sql receberá a query que selecionará na tabela “usuarios”, login e senha.
String sql = "select * from usuarios where login = '" +login+"' and senha = '" +senha + "'";
Utilizaremos também o PreparedStatement que é uma instrução do banco de dados, ou seja, um recurso usado para executar instruções SQL como, instruções de consulta ou atualizações repetidas vezes, e com máxima eficiência. Assim, a instrução PreparedStatement irá receber o objeto connection que por sua vez invocará a instrução sql que acabamos de criar.
E o Resultset será o responsável por carregar o resultado da SQL, invocando a execução da query.
Criaremos ainda um laço de repetição se result.next(), isto é, se tiver usuário retorne true. Se não, retorne false. Mas não acaba aqui, precisamos criar o DaoLogin também na servlet.
private DaoLogin daologin = new DaoLogin();
VALIDANDO O LOGIN
Esta validação será feita ainda na classe LoginServlet. Então, no laço de repetição substitua o beanCursoJsp.validarLogin pelo daoLogin, a assinatura da estrutura de repetição ficará assim.
If (daoLogin.validarLogin(login, senha)){}
E todo este bloco a partir e inclusive a instanciação do BeanCursoJsp deverá ser colocada dentro de um try/catch. Agora é só subir a aplicação e testar.
EM POUCAS PALAVRAS
Então implementamos uma validação de login com JDBC e servlets. Assim, criamos uma classe DAO a partir da qual instanciamos um objeto do tipo DAO. Com o DAO acessamos o banco de dados e um objeto de transferência é retornado, tal objeto é então modificado pela aplicação.
E cumprindo o papel para o qual foi criada, o DAO é usado pela nossa aplicação para atualizar (CRUD) o objeto de transferência na base de dados. Lembrando que são as transações de Create (criar), Read (ler), Update(atualizar) e delete (apagar/remover) do banco de dados. Eu fico por aqui, nos vemos no próximo tutorial.