Pegar Exception de 2 Registros Iguais

9 respostas
colored
Então To Precisando pegar quando o usuario for inserir um cadastro e por exemplo inserir um cpf q jah existente no banco de dadosTo Usando o PostgreSql.

Alguem tem Ideia com fazer, tipo eu tenho um exemplo aki mas n funfocatch(SQLException ex)

{

if (ex.getMessage().equals(General error))

JOptionPane.showMessageDialog(null,“Cliente já Cadastrado);	

else	

JOptionPane.showMessageDialog(null,“Dados Inválida);	

}

Mas n deu mto certo alguem tem como da uma Mão ai Valeu =]

9 Respostas

FilhoDoRei

Modifica o campo cpf no banco de dados para que ele seja primary key(afinal não existe pessoas com cpf iguais), daí fica mais facil de tratar exceções desse tipo.

flwsss

robinsonbsilva

Jovem,
è simples…antes da inserção faça uma validação para verificar se o cpf já existe.
Ou seja, faça quantas validações forem necessárias antes de “Inserir” e cada verificação retornando sua “Exception”… ou senão ponha um restrição no BD deixando a coluna com “UNIQUE”…assim se repetir dará erro

colored

Ja fiz isso mas mesmo assim preciso pegar a exception q dah qdo tem duplicidade de dados…

entendeu?

colored

Tipo deixei ja de chave primaria ai da o erro de duplicidade de dados;;;

mas eu tentei, ajeita mas n consegui.

org.postgresql.util.PSQLException: ERROR: duplicate key violates unique constraint "funcionario_pkey"
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1548)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1316)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:351)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:344)
	at Bean.FuncionarioDAO.AdicionaFuncionario(FuncionarioDAO.java:37)
	at Funcionario.StartFuncionario.SalvarFuncionario(StartFuncionario.java:87)
	at Funcionario.StartFuncionario.actionPerformed(StartFuncionario.java:24)
rafaelglauber

SQLIntegrityConstraintViolationException

veja outras aqui: http://www.javaspecialists.co.za/archive/newsletter.do?issue=138

colored

karamba n ta pegando a exception

catch (SQLIntegrityConstraintViolationException e) {

JOptionPane.showMessageDialog(null, Piao Ja Add);

}

q estranho.

rafaelglauber

colored:
karamba n ta pegando a exception

catch (SQLIntegrityConstraintViolationException e) {

JOptionPane.showMessageDialog(null, Piao Ja Add);

}

q estranho.

pois é, se você verificar é a org.postgresql.util.PSQLException que tá sendo levantada e ela não e uma SQLIntegrityConstraintViolationException, logo terá que fazer o catch com a danada mesmo da exception do PostgreSQL que é especialista direto de java.sql.SQLException.

FilhoDoRei

Muito bem então, tenta montar um SELECT que receba como parametro o cpf digitado e compare com todos os cpf já cadastrados. Se a query retornar alguma coisa significa que já existe cpf cadastrado se não pode inserir :stuck_out_tongue: .

flwsss

colored

Ah Rafael eu vi isso falei karai, agora q eu vi q ele importa o PSQL,
Valeu Agora d Boas x)…

Brigado a Todos.

Criado 16 de julho de 2008
Ultima resposta 16 de jul. de 2008
Respostas 9
Participantes 4