Problemas em mostrar ultimo registro

Pessoal…eu gostaria de que apos salvar o registro, fosse mostrado na tela qual o numero da chave que ele obteve…por ex., prrenchi os campos(menos) o codigo e cliquei no salvar, apos isso ele permanece com os campos preenchidos e no lugar do codigo que estava em branco ele mostra um numero…que eh o numero do registro…pois muito bem…fiz uma rotina para ele mostrar o numero, mas acontece que ele cria outro registro…duplica…uma pessoa com dois numeros diferentes, por exemplo…joao com 51 e 52…
Por Favor…alguem da uma olhadinha no meu codigo e diz o que tem de errrado…obrigada[]'s

codigo para inserir:

Código:

public void inserir(String nome, String tel, String cel, String mail){
Statement stmt = HF.createStatement();
try {
stmt.executeUpdate(
“INSERT INTO contato_agenda(nome,telefone,celular,email)VALUES (’” +
nome.toUpperCase() + “’,’” + tel +
“’,’” +cel+ “’,’” + mail +
“’)”);
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Erro:
"+ex);
}
JOptionPane.showMessageDialog(null,“Registro salvo”);
}

codigo para mostrar o ultimo:

Código:

public String mostrarUltimo(){
String codi="";
Statement stmt=HF.createStatement();
try{
ResultSet rs =
stmt.executeQuery(“select last_value from contato_agenda_codigo_seq”);
while(rs.next()){
int cod=rs.getInt(“last_value”);
codi=codi+cod;
}
}catch(SQLException ex){
JOptionPane.showMessageDialog(null,"Erro em: "+ex);
}
return codi;
}

acao do botao:

Código:

void jButton2_actionPerformed(ActionEvent e) {
gb.inserir(jTextField2.getText().toUpperCase(),
jFormattedTextField1.getText(), jFormattedTextField2.getText(),
jTextField3.getText());
jTextField1.setText(gb.mostrarUltimo());
}

Onde gb = gerenteBD…

Se contato_agenda_codigo_seq for uma sequence é normal que crie um novo registro.
O seu Insert só funciona se o seu campo código for um autoincremento real, ou seja existe uma trigger para pegar o próximo valor da sequence.
O problema não deve ser no código e sim na forma como você insere no banco.

o meu campo codigo eh autoincrement…

Dah uma olhada nisso aqui:

http://www.techonthenet.com/oracle/sequences.htm

Boa tarde.

Sua tabela não estaria com o código para o contato da agenda como Primary Key, se for isso, não tem como evitar a duplicação da forma que está codificado.
Caso esteja certo, vc terá que realizar alguma pesquisa antes de realizar a inclusão por campos “chaves” ou alterar a forma com o qual a tabela do banco de dados foi criada.

Att.
Ederson.

Faz o insert assim?

INSERT INTO suaTabela
(codigo, blablabla)
VALUES
(suaSequence.nextval, 'blablabla');

Dessa forma, sua sequence jah foi incrementada e seu codigo recebe o ultimo valor da mesma …

mesmo com a alteracao…
insert into table (codigo, nome) values(nextval(‘table_seq’),“michela”)

ela ainda continua duplicando…

Bom dia Diana.

Vc chegou a ver como a tabela está “contruída”?
Quais são as primaries keys?

Att.
Ederson.