Olá pessoal.
Tenho um programa que precisa inserir um registro no banco. Simples, aparentemente. Mas me deparei com uma questao. Qual o mais interessante(correto, ou menos problematico) de se fazer ???
- Eu devo fazer uma verificação se o CPF do individuo, por exemplo, ja existe na tabela (1 conexão) e depois fazer o insert (outra conexão) dependendo da verificação(caso nao exista)??
- Eu faço a verificação do CPF e, se nao existe, e faço o insert. Tudo isso usando a mesma conexão.
- Eu faço o insert direto e deixo o banco fazer a consistencia da Primary Key, uma vez que o CPF do individuo eh a PK da tabela.
[]´s
Eu prefiro fazer minha própria consistência de dados, tudo com UMA conexão…
Se você utilizar a consistência do Banco vai acabar prendendo seu sistema à um BD específico…
A maneira mais fácil de fazer isto é através de conexão com ACCESS,fazendo a inserção no Banco pela aplicação via TextField.
Interface gráfica, conexão e inserção no Banco, tudo no mesmo código.
Se quiser me manda uma mensagem que eu te passo um exemplo.
wwportas@ig.com.br
Abraço.
Charles
Em um caso desses eu colocaria o cpf com unique na tabela e depois mandava inserir normalmente.
Se nao tiver problema depender do banco insira normalmente e deixe a PK informar se e repetido ou nao
agora se vc tiver q trocar de banco constantemente ou se for questao de estudo faça a sua propria consistencia
repare q de um jeito ou de outro vc tera de tratar o erro pois se aparecer pro usuario uma mensagen tipo
erro 0x804004 …blablabla
ai eh bem pior
Galera, não é assim não,vc temque usar o cpf como chave única sim…pois vc “economisa” uma ida ao banco só para verificar…e a mensagem de erro basta vc colocar a sua no catch ou coisa assim:" Esse cpf já existe…" não tem mistério…
Bom o mais recomendado é usar PreparedStatemente e inserir(usado beans , ou outra coisa qualquer, caso não esteja usando hibernate ou outro tipo de persistencia) Não se esqueça de fechar todas as conexões sempre
ex:
public class Cadastro {
public void cadastraCPF(){
String query="INSERT INTO tabela VALUES(?,?,?)";
con=cx.getConect();
try{
PreparedStatement ps=con.prepareStatement(query);
ps.setInt(1,cpf);
ps.setString(2,nome);
ps.setString(3,rg);
int i=ps.executeUpdate();
if(i!=0){
ps.close();
//mensagem de xuxexo :)
}
} catch(SQLException e){
//mensagem de erro
} finally{
cx.desconnect();
}
}
}