Inserir Registro em um Banco. Qual a melhor maneira?

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 ???

  1. 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)??
  2. Eu faço a verificação do CPF e, se nao existe, e faço o insert. Tudo isso usando a mesma conexão.
  3. 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();
           
        }
    }
    
}