A validação de dados é uma tarefa bastante comum em sistemas onde a entrada de dados é feita principalmente pelo usuário. Em qualquer aplicação, receber dados sempre foi um grande problema, pois não há como prever todas as maneiras que o usuário utilizará para informar seus dados. Por exemplo, caso o campo que receberá uma data não especifique o formato esperado pela aplicação, não há como garantir que o usuário entrará com o dado no formato desejado, o que acaba se tornando um desafio aos programadores.
Diante disso, é necessário realizar o tratamento adequado de todas as informações que são enviadas para evitar que problemas inesperados venham a ocorrer durante o processamento, como exceções que interromperão a execução do sistema, problemas de integridade ou corrupção dos dados e também questões relacionadas à falha de segurança.
Cada informação passada para a aplicação possui um propósito. Assim, é natural que algumas regras sejam introduzidas com o intuito de controlar a interação entre o usuário e o sistema, garantindo deste modo a correta execução das regras de negócio. E com o intuito de garantir o cumprimento dessas regras que o conceito de validação foi implementado. Validar é determinar se os dados capturados pelo sistema seguem as regras lógicas definidas para manter a sua consistência.
Neste contexto, conseguir consolidar e implementar a validação usando uma solução de qualidade como o Hibernate Validator pode melhorar significativamente a confiabilidade do software, especialmente ao longo do tempo, e torná-lo mais amigável ao usuário.
Considerando que as políticas de validação não estruturadas e não controladas vão levar ao aumento dos custos de suporte e manutenção, uma estratégia de validação consolidada pode minimizar significativamente o efeito cascata de mudanças para sua base de código. Além disso, a camada de validação também passa a ser uma ferramenta muito útil durante o processo de depuração, ajudando a localizar defeitos que comprometem o bom funcionamento da aplicação.
Engajado nesta causa, o Hibernate Validator é um projeto open source conduzido pela empresa Red Hat que permite a validação dos dados, presentes nas classes que modelam o domínio da aplicação, em qualquer arquitetura (Web, Desktop, etc.) e em tempo de execução. A motivação para a utilização dessa biblioteca é poder validar os dados diretamente no domínio da aplicação, em vez de realizar esse processo por camadas. Dessa forma, é possível validar campos numéricos, definir se datas informadas serão obrigatoriamente maiores ou menores que a data atual, verificar se o campo pode ser vazio ou não diretamente nas classes de domínio de maneira centralizada e flexível, mantendo o código claro e enxuto.
A partir disso, ao longo desse artigo abordaremos os principais conceitos e características do Hibernate Validator, e veremos como desenvolver um sistema de cadastro de projetos considerando como um dos seus principais requisitos não funcionais a confiabilidade do sistema. Para tanto, serão empregados, além do Validator, a linguagem de programação Java, o ambiente de desenvolvimento Eclipse integrado ao Maven, o sistema de gerenciamento de banco de dados MySQL, o framework JSF e o container web Tomcat. Ademais, o Hibernate será usado como solução integrante da camada de persistência, viabilizando a interface entre a aplicação e o MySQL.
Hibernate Validator
O Hibernate é um framework de mapeamento objeto relacional muito popular entre os desenvolvedores Java. Distribuído sob a licença LGPL, foi criado por Gavin King em 2001, sendo atualmente o framework de persistência de dados mais utilizado. Segundo a documentação oficial: “o Hibernate pretende retirar do desenvolvedor cerca de 95% das tarefas mais comuns de persistência de dados”.
Sua principal característica é a transformação de classes Java em representações de tabelas da base de dados (e dos tipos de dados Java para os da SQL). O Hibernate gera os comandos SQL e libera o desenvolvedor do trabalho manual de transformação, mantendo o programa portável para quaisquer bancos de dados SQL.
...
Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais