[RESOLVIDO]Chamar Auto-incremento no Java. MySQL já configurado com Auto-Increment

12 respostas
K
private void escolhaActionPerformed(java.awt.event.ActionEvent evt) { 

try 
{ 

conectaBanco(); 
resultSet = statement.executeQuery("SELECT * FROM cadastro"); 

while (resultSet.next()) 
{ 
String id = resultSet.getString("id"); 
escolha.setText(id); 

} 

} 
catch (Exception e) 
{ 

} 

}

eu tenho banco de dados mysql configurado com auto increment, eu quero exibir o ID numa caixa JTextField com o último ID disponível.

Como eu chamo esse ID de dentro da tabela para exibir no JTextField e ficar inativo para ninguem alterar?

12 Respostas

michetti

Nesta caso do seu while, vai mostrar o id somente do último registro do banco, pois você colocou dentro de um while(rs.next()), ai toda vez que tiver um registro no banco vai setar o valor no TextField enquanto tiver dados, se você esta tipo fazendo um sistema de cadastro você pode fazer o seguinte pegar o último registro do do while(rs.next()) e adicionar +1 e na hora de salvar no banco não passar o id no select pois já é auto_increment. E a questão do ficar inativo é so você setar o campo como escolha.setEnabled(false) ai não vai ser possível alterar o conteúdo dela.

K

Pois é …teria como me passar o código …consertando o meu…pois não estou conseguindo…a partir do while vai me ajudar my …obrigado

michetti

Então cara eu mudaria somente isto aqui...

private void escolhaActionPerformed(java.awt.event.ActionEvent evt) { 

try 
{ 

conectaBanco(); 
resultSet = statement.executeQuery("SELECT * FROM cadastro"); 

while (resultSet.next()) 
{ 
String id = resultSet.getString("id"); 
} 
escolha.setText(id+1); // TIREI DO WHILE, E ADICIONEI +1 AO ULTIMO REGISTRO DE "id"
} 
catch (Exception e) 
{ 

} 

}

Tenta ai.. qualquer coisa posta aeww

K

escolha.setText(id+1);

na linha acima o campo id está sublinhado, talvez seja pq não esta convertido em int…alguem pode me ajudar…so da erro no id nessa linha.

K

O meu código não funciona…tentei tudo…teria como alguem me enviar um código para acessar um banco de dados MySql paga pegar um ID que ja esta com auto increment e exibir numa JTextField??

michetti

Assim que eu faço para consultar em meu banco de dados..

Eu uso o "padrão MVC" ( que no caso não esta completamente certo este meu padrão kkkk)

public List<Horario> listarHorarios(){
        ResultSet RS;
        String select="select * from horario";
        List<Horario> horarios = new ArrayList<>();
        try {
            RS = inserir.Consulta(select);
            while(RS.next()){
                Horario h = new Horario();
                h.setHorario(String.valueOf(RS.getString("horario")));
                horarios.add(h);      
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        try {
            inserir.Exit();
        } catch (SQLException ex) {
            Logger.getLogger(NovoAgendamento.class.getName()).log(Level.SEVERE, null, ex);
        }
        return horarios;
           
       }
ViniGodoy

NÃO USE LETRAS MAIÚSCULAS NO TÍTULO OU NO TEXTO DO TÓPICO!!!

K

Ja tirei o escolha.setText(id) do while e nada, esse codigo em baixo ta funcionando assim, quando abre a janela pra exibir o id …exibe o id se eu apertar enter…to precisando q quando abra a janela exiba o ultimo id automaticamente no campo JTextFiel chamado escolha.

try
        {
            
            conectaBanco();
            resultSet = statement.executeQuery("SELECT * FROM cadastro"); 
           
            
          while (resultSet.next())
          {
     
              String id = resultSet.getString("id");
              escolha.setText(id);
          }
               
        }
        catch (Exception e)
        {
            
        }
       
    }
michetti

Então cara se você não colocar este comando dentro de um evento não vai carregar automaticamente mesmo não…

Eu faço assim…

private void formComponentShown(java.awt.event.ComponentEvent evt) { listarAgendamentos(); // TODO add your handling code here: }

K

Eu quero abrir a janela e aparecer automaticamente o numero do id sem precisar apertar enter…como esse metodo pode me ajudar?

private void formComponentShown(java.awt.event.ComponentEvent evt) {                                      
    listarAgendamentos();  
    // TODO add your handling code here:  
}
michetti

Sim, com este evento assim que o programa for iniciado vai chamar o metodo listarAgendamentos(); consequentemente ir mostrar o id no textField que é no seu caso… ao invés de chamar o metodo listarAgendamentos() você pode por os comandinhos que você esta usando para buscar o id no banco de dados.

K

Fiz o q vc falou e nada…não funcionou…coloquei os comandos dentro do ComponentShown

private void escolhaComponentShown(java.awt.event.Component Event evt) {   
      
    try   
    {   
      
    conectaBanco();   
    resultSet = statement.executeQuery("SELECT * FROM cadastro");   
      
    while (resultSet.next())   
    {   
    String id = resultSet.getString("id");   
    escolha.setText(id);   
      
    }   
      
    }   
    catch (Exception e)   
    {   
      
    }   
      
    }
Criado 11 de novembro de 2013
Ultima resposta 14 de nov. de 2013
Respostas 12
Participantes 3