Codigo automatico

14 respostas
programaçãojavamysql
felipe1234

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 ?

14 Respostas

Jonathan_Medeiros

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.

felipe1234

no caso campoIncremental seria o nme da minha coluna ?

Jonathan_Medeiros

Isso.

felipe1234

criaria esse comando em um metodo e depois setaria ele em um textField ?

Jonathan_Medeiros

Se precisar mostrar essa sequência ao usuário sim, caso contrário não tem necessidade.

igor_ks

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

felipe1234

mas e se eu fechar o frame e quando eu reabrilo ele vai estar no ultimo registro?

Jonathan_Medeiros

Se o registro estiver sido persistido no seu banco sim!

felipe1234

vou testar aui ja te falo o resultado

felipe1234

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]

Jonathan_Medeiros
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));
felipe1234

man ele continua com o meso erro package txtID does not exist

Jonathan_Medeiros

Ele está dizendo que esse carinha aqui (txtID) não existe onde você está utilizando!
Verifique o nome corretamente, faz um debug.

felipe1234

é o mesmo nome da variavel do textField o erro só some quando eu coloco ele no metodo

Criado 13 de fevereiro de 2017
Ultima resposta 14 de fev. de 2017
Respostas 14
Participantes 3