Erro no banco!

4 respostas
F

Fala galera…

Bom to com um pequeno probleminha. Resolvi deixar o meu BD, verificar se existe uma descricao X, quando o usuario inserir o que ele quiser. Resumindo, se o usuario tentar inserir “ola” no banco de dados, o banco por si só verifica se tem essa “descricao”, e caso tenha ele retorna erro.

Minha pergunta, é como informar isso pro usuario? Como capturar esse erro do banco, ou ainda como eu poderei fazer isso pela aplicacao, pois estou conseguindo gerar o erro, mas n estou conseguindo informar, ao usuario que este dado, ja foi inscrito no mesmo!

Abraços!

4 Respostas

Anderson_Schmidt

Olá,

Então na verdade vc não está com um erro no banco de dados. Pelo que entendi, essa coluna de descrição é sua chave primária e, o banco apenas retorna violação de integridade. Normal.

Comparação usando String não é uma prática recomendada, mas, se vc não tem outra opção (se for um campo de CPF por exemplo), faça sua verificação de “Existe” ou “Nao Existe” antes de inserir. Assim, terá como mostrar facilmente mensagens de erro.

Abraço!
Schmidt

F

Bem schmidt, não fui tão claro eu acho!

Bom… tenho uma chave primaria chamada ID, aonde essa armazena um Inteiro, e tenho um campo descricao, onde esse armazena uma string. Minha pk, é alimentada pelo hibernate automaticamente.

Meu campo descricao, é preenchido com uma descrição, que capturo da jsp.

Além de minha PK ser unica, pedi ao BANCO que minha descrição, tambem fosse unica, ou seja, o controle de repetição de strings é feita pelo banco, e não pela minha aplicação.

Ate OK, quando tento inserir a mesma descrição duas vezes, no console do eclipse (ferramenta do qual to construindo o aplicação), aparece o erro de violação, que é esperado. Agora, minha pergunta é, como transformar esse erro em mensagem para o usuario, ja que vi MVC2, n achei algo que solucionasse meu problema!

Abraços

J

Bom, posso estar enganado, mas a sua classe java que faz o insert não tem tratamento de exceções?

Se tiver, o erro retornado pelo banco vai ser capturado pela Exception, não vai?

Daí você formata (troca) essa mensagem por uma mais amigável através de um arquivo de properties, formado pela chave=valor.

Ex.:
PK_CD_CAMPO=Código do Campo já cadastrado.
FK_CD_CAMPO=Nenhum Código do Campo cadastrado.

F

julianostr…

Suas palavras, foram respondidas com exemplos que vi mais cedo. To novo no java ainda, logo, ainda tenho que lutar com algumas regras.

Coloquei sim um try/catch no dao, e vim propagando o erro ate minha classe de controle, e dai sim, disparei o erro pro usuario.

Mas de qualquer forma, muito obrigado pela ajuda!

Ate +.

Criado 11 de julho de 2006
Ultima resposta 12 de jul. de 2006
Respostas 4
Participantes 3