Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tockie

Aproveitar restrições das tabelas para usar como exceção.

Recommended Posts

Pessoal, é meu primeiro tópico neste fórum e gostaria de fazer uma pergunta(apenas por curiosidade):

 

Gostaria de saber se tem como aproveitar as exceções SQL no Java para retornar uma mensagem para o usuário, mas apenas aquelas ligadas a restrições feitas no MySQL. Por exemplo: Eu defini que o campo Nome de uma tabela x é unico. Desta forma, se eu tentar inserir um nome que já existe, irá dar um exceção. Então eu pegaria esta exceção e , com base em alguma informação, eu retornaria uma mensagem para o usuário dizendo, por exemplo: "Este nome já existe. Digite outro."

 

É basicamente isto: eu queria aproveitar as restrições feitas no banco de dados, para não ter de fazer pelo Java novamente, sem que seja necessário criar funções que faça estas restrições já existentes no banco de dados.

 

Se for possível fazer isto, é apropriado fazer desta forma?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, é possível teria que utilizar annotations, para banco de dados o mais comum é a utilização do hibernate validator, utilizando annotations, o comum e o que utilizamos aqui no serviço é efetuarmos uma validação no cliente via javacript (JQuery Validate) e no servidor outra validação com hibernate validator.

 

ex algumas annotations:

 

@AssertFalse            Verifica se anotação é false.    
@AssertTrue               Verifica se anotação é true.    
@Email                     Verificar se a seqüência especificada é um endereço de e-mail válido.
@Length(min=, max=)             Precisa ser uma string. Validar que a string está entre min e max incluído.
@Max                 Verifica se o valor anotado é inferior ou igual ao valor máximo especificado.    
@Min                     Verificar se o valor anotado é maior do que ou igual ao mínimo especificado.    
@notNull                 Verifique se o valor anotado não é nulo. 
@notEmpty                 Precisa ser uma string. Verifica se a string não é nulo ou vazio.
@Null                     Verifique se o valor anotado é nulo.
@Pattern(regex=, flag=)         Precisa ser uma string. Verifica se a cadeia anotada corresponde à expressão regular regex
@Size(min=, max=)              Verifica se o tamanho do elemento anotado é entre mínimo e máximo. Tamanho da coluna será definido para max.
@Valid                      Realizar a validação recursivamente sobre o objeto associado, ou seja com objetos que tenham relacionamento.

Um exemplo de utilização em uma classe:

 

@Entity
public class Produto {

  @Id @GeneratedValue
  private Long id;

  @NotNull
  @Length(min=3)
  private String nome;

  @NotNull
  @Length(max=40)
  private String descricao;

  @Min(0)
  private Double  preco;
}

Exemplo para setar uma mensagem de erro:

 

@NotNull(message="Nome precisa ser preenchido")
  @Length(min=3, message="Nome precisa ter mais de 3 letras")
private String nome;

Existem n's tutoriais na internet, inclusive aqui no portal do iMasters, se quiser saber mais sobre hibernate validator veja a documentação on-line:

 

http://docs.jboss.org/hibernate/validator/4.0.1/reference/en/html_single/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu, Edultra.

Já tinha visto annotations no java como @Deprecated e @Override, mas não imaginava que eles tinham esta utilidade. Valeu mesmo.

 

Eu vou dar uma lida no link que você passou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.