Qual Codigo fonte eu uso para não duplicar dados em meu banco dados?

Por favor estou fazendo um programa de cadastro de dados e gostaria de saber como eu faço para que o programa não grave o mesmo arquivo duas vezes ou seja se eu apertar gravar na ficha aberta ele broqueia?hj quando eu faço isso ele gera um novo codigo de numeração automatica mas com os mesmos dados>desde ja agradeço a atenção…Edirlei
o meu codigo de gravar é este:

[/code]
try {
String sqlinsert ="insert into redejovens " +
"(Inscricao,DataCadastro,Nome, DataNascimento, Idade, Sexo,EstadoCivil,Email, Rua, Numero, Complemento, "+
"Bairro, Cidade, Batizado, Celula, Lider, Aptidao, Participa, Funcao, “+
" Cep, DDD, TelResidencial, DDDCel, TelCelular, Foto, UF) values (’”+

                // tf_codigo.getText()+"','"+
                tf_inscricao.getText()+"','"+
                 tf_datacad.getText()+"','"+
                tf_nome.getText()+"','"+
                tf_nascto.getText()+"','"+
                tf_idade.getText()+"','"+
                sexo+"','"+
                tf_estadocivil.getText()+"','"+
                tf_email.getText()+"','"+
                tf_rua.getText()+"','"+
                tf_numero.getText()+"','"+
                tf_complemento.getText()+"','"+
                tf_bairro.getText()+"','"+
                tf_cidade.getText()+"','"+
                tf_batismo.getText()+"','"+
                tf_celula.getText()+"','"+
                tf_lider.getText()+"','"+
                tf_aptidao.getText()+"','"+
                tf_participa.getText()+"','"+                                
                tf_funcao.getText()+"','"+
                tf_cep.getText()+"','"+
                tf_ddd.getText()+"','"+
                tf_telefone.getText()+"','"+
                tf_dddcel.getText()+"','"+
                tf_celular.getText()+"','"+
                tf_foto.getText()+"','"+
                cb_uf.getSelectedItem()+"')";
        //  tf_nome.requestFocus();
        
        con_redejovens.statement.executeUpdate(sqlinsert);
        JOptionPane.showMessageDialog(null,"Gravação realizada com Suscesso");
        
        //   con_redejovens.resultset = con_redejovens.statement.executeQuery(" Select * from redejovens");
        con_redejovens.executeSQL("select * from redejovens order by "+ordenacao);
        atualiza_combo_box_redejovens();
        con_redejovens.resultset.first();//posiciona no primeiro registo
        mostrar_dados();// ira chamar a função em que ira mostrar os dados
        
        
        
    } catch (SQLException erro) {
        JOptionPane.showMessageDialog(null,"Erro ao tentar Gravar o Registro "+erro);
    }
}

Não sei se entendi direito, mas quando não queremos o mesmo valor duas vezes em uma tabela utilizamos constraints para não permitir valores duplicados em certos campos.

Não sei se o caso é esse, mas de qualquer forma seria bom você nos explicar melhor o seu problema e se possível postar o seu código fonte.

jony obrigado pela atençao na verdade eu coloquei meu codigo eu terei que gravar uns 1000 nomes com end e etc… eu to usando 5 tabelas diferentes uma e a geral e a as outras de departamentos e gostaria que os dados não fossem duplicados.ok

Como disse o Jhonny, especifique melhor sua duvida.

Mas de qualquer formar veja se isso lhe ajuda:

Tambem acho que o melhor é usar constraints, e captura o erro quando der erro de constraints e verifica toda vez que der erro se é o especifico de constraints com instanceof.

ola Fexx e esqueleto, eu agradeço de ante-mão eu na verdade sou iniciante em java não sei o que significa “constraints,” mas eu vou dar uma olhada no link acima e depois eu posto aqui ok abraços

constraints é restrições na base de dados. Uma PK é uma constraint, UK é constraint, FK é constraint, entre outras.

No seu caso, recomendo dois cuidados, o primeiro, é no onclick do seu botão você desabilitar ele enquanto estiver executando a ação e habilitar novamente só no final.

O segundo cuidado é você retornar o id (pode usar o getGeneratedKeys() do PreparedStatement para isso) e colocar como id do seu objeto. No click do botão, se o id for nulo, você insere, se não for nulo, você atualiza.

e tb deixar a PK como auto-incremento…

E ae bae2005 entendeu o que é a tal constraint? Não queria deixar o tópico sem solução. Diz ai qual o banco que esta usando, tomara que seja MySQL :). E diz também quais ainda são suas duvidas.

galera se não for pedir muito daria pra vcs me mandarem o exemplo de como ficaria esses comandos pegando o meu codigo fonte acima por favor, como eu disse sou iniciante em JAVA . obrigado

o campo “Inscricao” pode ser duplicado??? se não puder adiciona um “where inscricao <> '”+tf_inscricao.getText()+"’" pra validar isso…

o/*

se é só o campo inscrição que não pode ser duplicado pode adicionar uma constraint unique key para esse campo.

Bae: não faz parte da cultura do guj dar o código pronto, vai tentando aí e qualquer coisa pergunta, dá uma lida no método que eu passei (getGeneratedKeys()) e vê o resultset que ele retorna.

Fala ai bae2005, conforme disse o nosso amigo evefuji, vc precisa configurar essa contraint Unique Key no seu banco de dados

CREATE TABLE Pessoa
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (FirstName)
)

No exemplo acima no script do meu banco criei a tabela pessoa e transformei o campo FirstName em um campo que so aceita entradas exclusivas, ou seja, só posso cadastrar nomes que não irão se repetir. No seu caso como seria o numero de inscrição, se vc tentar cadastrar um numero existente ja na base o banco vai reclamar.

Obrigado FacanaCaveira, eu entendi a sua explicação e vou tentar fazer, eu to usando o banco ACess vou ver como fazer isso nele e assim que der vou mudar para SQL pois ficara bem mais facil usar esses comando né, abraços e de antemão Um feliz 2012 e até ++++