Ao inserir um novo registro

Pessoal, sou um novo ainda em JAVA e gostaria de uma ajuda ou sugestão.

Sempre fiz programas de cadastro utilizando código automático. Verificava no banco o ultimo registro e somava 1.

Agora preciso colocar o código manualmente e caso esse código já esteja cadastrado eu seja notificado.

O que é mais comum de se fazer, verificar no banco a existência desse código antes de inserir ou tentar inserir direto e tratar alguma excessão, se é que existe uma excessão que trate isso. Caso exista, qual seria essa excessão?

Será q fui claro na explicação?

Obrigado a todos !!! Abraço.

costumo fazer isso tratando a exceção…

do objeto SQLException voce pode chamar o metodo getErroCode()

para o caso de chave primaria duplicada deve existir um codigo de erro especifico que o seu banco deve retornar. (isso varia pra cada banco)

Olah,

olha, vai depender um pouco, digamos que vc queira fazer uma serie de inserções, ou mesmo você deseja uma performace melhor… é indicado que vc capture a excepção, acredito que SQLException, de qualquer forma, pega Exception, que pega tudo…

mas, talvez, vc fazer um select antes, pra ver se o codigo ja existe e tal, seja interessante, pelo fato de lhe dar mais conforto pra tratar…

se quiser so dar um erro, trata na exceção, se quiser outro tipo de tratamento, trata antes de inserir…

se eu entendi a pergunta, acho que vai depender da tua aplicação, se esse select vai demorar pra executar…

[]'s

[quote=“rodrigomaia”]Olah,

olha, vai depender um pouco, digamos que vc queira fazer uma serie de inserções, ou mesmo você deseja uma performace melhor… é indicado que vc capture a excepção, acredito que SQLException, de qualquer forma, pega Exception, que pega tudo…

mas, talvez, vc fazer um select antes, pra ver se o codigo ja existe e tal, seja interessante, pelo fato de lhe dar mais conforto pra tratar…

se quiser so dar um erro, trata na exceção, se quiser outro tipo de tratamento, trata antes de inserir…

se eu entendi a pergunta, acho que vai depender da tua aplicação, se esse select vai demorar pra executar…

[]'s[/quote]

Então Rodrigo, eu nem estou levando muito em consideração o desempenho por ser poucas inserções que ocorrerão. Embora realizar um Select p. verificar a existencia do registro leve mais tempo do que tratar uma excessão não sucedida. Obs.: Estou usando ACCESS via ODBC.

Eu costumo tratar a excessão SQLException, mas de forma generalizada… como ela trata, ou seja, qualque erro com a instrução SQL é reportada.

Gostaria de tratar uma excessão específica para duplicidade de registro. Será q existe? Vou tentar esse método getErroCode() que o Denis sugeriu.

Se alguém tiver mais alguma sugestão, será bem vinda.

Valeu galera !!! Abraço.