Pessoal boa tarde quero gerar um codigo automatico em um textField e de acordo com que vou salvando no banco de dados ele vai indo para o proximo.
e quando eu fechar o sistema ele volte para o ultimo registro do codigo dele como faço isso ?
Codigo automatico
14 Respostas
Da pra fazer conforme abaixo.
SELECT COALESCE(MAX(campoIncremental),0) + 1 FROM suaTabela
Ele irá retornar sempre o último registro salvo no banco + 1, ou seja, a próxima sequência a ser inserida!
Outra opção, como você está usando mysql é definir a coluna desejada como AUTO_INCREMENT.
no caso campoIncremental seria o nme da minha coluna ?
Isso.
criaria esse comando em um metodo e depois setaria ele em um textField ?
Se precisar mostrar essa sequência ao usuário sim, caso contrário não tem necessidade.
Gerenciar o id no app ao inves de deixar o banco gerar é arriscado, pois se dois usuários ou mais clicarem em “Novo” antes de clicar em “Salvar”, ambos vao estar com o mesmo ID e vai dar pau
mas e se eu fechar o frame e quando eu reabrilo ele vai estar no ultimo registro?
Se o registro estiver sido persistido no seu banco sim!
vou testar aui ja te falo o resultado
Man ele ja da erro package txtID does not exist
[CODE]
public void codigoAuto(){
try {
String sql="SELECT COALESCE(MAX(pro_id),0) + 1 FROM tb_produtos";
pst = con.prepareStatement(sql);
rs= pst.executeQuery();
while (rs.next()) {
rs.getInt("pro_id");
}
} catch (Exception e) {
System.out.println("Erro"+e);
}
}
txtID.setText(codigoAuto());//linha apresentada o erro package txtID does not exist
[CODE]
public int codigoAuto(){
try {
String sql="SELECT COALESCE(MAX(pro_id),0) + 1 as SEQUENCIA FROM tb_produtos";
pst = con.prepareStatement(sql);
rs= pst.executeQuery();
while (rs.next()) {
return rs.getInt("SEQUENCIA");
}
} catch (Exception e) {
System.out.println("Erro"+e);
return 0;
}
return 0;
}
private int codigo = codigoAuto();
txtID.setText(Integer.parseInt(codigo));
man ele continua com o meso erro package txtID does not exist
Ele está dizendo que esse carinha aqui (txtID) não existe onde você está utilizando!
Verifique o nome corretamente, faz um debug.
é o mesmo nome da variavel do textField o erro só some quando eu coloco ele no metodo