Função Select (Com NetBeans e MySQL)

3 respostas
Suellen_Susu

Estou fazendo um TCC, onde tenho um form de navegação de registros (no meu caso, navegação de perguntas, pois estou desenvolvendo um Quiz, jogo de perguntas e respostas) e estou criando botões de navegação, como próximo, anterior, último e primeiro. Só que os selects que criei não funcionam, apenas o do botão ultimo está certo.
O botão primeiro, trava, o botão anterior não funciona e o botão próximo pega o último resgistro (ou seja, esta fazendo a função do botão último). Abaixo estão os códigos correspondentes aos botões: (Obs: as linhas em negrito, indica o 'resultset' do mysql que devo usar em cada botão)

Botão 'Primeiro' :

if(BD.getConnection())         
    {
               
                try
                {                  
                     String query = "Select * from facil where id =";
                     BD.setResultSet(query);    
                     while ([b]BD.resultSet.first[/b]())
                     {
                         pergunta=(BD.resultSet.getString("pergunta"));
                         alt1=(BD.resultSet.getString("alt1"));
                         alt2=(BD.resultSet.getString("alt2"));
                         alt3=(BD.resultSet.getString("alt3"));
                         alt4=(BD.resultSet.getString("alt4"));
                         resposta=(BD.resultSet.getString("resposta"));
                         id=(BD.resultSet.getString("id"));
                     }
                     jLabel10.setText(id);
                     jTextField1.setText(pergunta);
                     jTextField2.setText(alt1);
                     jTextField3.setText(alt2);
                     jTextField4.setText(alt3);
                     jTextField5.setText(alt4);
                     jTextField6.setText(resposta);                   
                }
                 catch(java.lang.Exception ex)
                {
                    ex.printStackTrace();
                }
     }
    botoesf();
    jButton7.setEnabled(true);
    jButton3.setEnabled(true);
    jButton8.setEnabled(true);

}

Botão 'Anterior' :

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
     if(BD.getConnection())
               {
               
                try
                {                  
                     String query = "Select * from facil where id =";
                     BD.setResultSet(query); 
                     while ([b]BD.resultSet.previous()[/b])
                     {
                         pergunta=(BD.resultSet.getString("pergunta"));
                         alt1=(BD.resultSet.getString("alt1"));
                         alt2=(BD.resultSet.getString("alt2"));
                         alt3=(BD.resultSet.getString("alt3"));
                         alt4=(BD.resultSet.getString("alt4"));
                         resposta=(BD.resultSet.getString("resposta"));
                         id=(BD.resultSet.getString("id"));
                     }
                     jLabel10.setText(id);
                     jTextField1.setText(pergunta);
                     jTextField2.setText(alt1);
                     jTextField3.setText(alt2);
                     jTextField4.setText(alt3);
                     jTextField5.setText(alt4);
                     jTextField6.setText(resposta);                   
                }
                 catch(java.lang.Exception ex)
                {
                    ex.printStackTrace();
                }
     }
    botoesf();
    jButton7.setEnabled(true);
    jButton3.setEnabled(true);
    jButton8.setEnabled(true);
}

Botão 'Próximo' :

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
// TODO add your handling code here:
     if(BD.getConnection())
               {
               
                try
                {                  
                     String query = "Select * from facil where id =";
                     BD.setResultSet(query); 
                     while ([b]BD.resultSet.next())[/b]
                     {
                         pergunta=(BD.resultSet.getString("pergunta"));
                         alt1=(BD.resultSet.getString("alt1"));
                         alt2=(BD.resultSet.getString("alt2"));
                         alt3=(BD.resultSet.getString("alt3"));
                         alt4=(BD.resultSet.getString("alt4"));
                         resposta=(BD.resultSet.getString("resposta"));
                         id=(BD.resultSet.getString("id"));
                     }
                     jLabel10.setText(id);
                     jTextField1.setText(pergunta);
                     jTextField2.setText(alt1);
                     jTextField3.setText(alt2);
                     jTextField4.setText(alt3);
                     jTextField5.setText(alt4);
                     jTextField6.setText(resposta);                   
                }
                 catch(java.lang.Exception ex)
                {
                    ex.printStackTrace();
                }
     }
    botoesf();
    jButton7.setEnabled(true);
    jButton3.setEnabled(true);
    jButton8.setEnabled(true);
}

Botão 'Último' :

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {                                         
// TODO add your handling code here:if(BD.getConnection())
    if(BD.getConnection())         
    {
               
                try
                {                  
                     String query = "Select * from facil where id =";
                     BD.setResultSet(query);
                     while ([b]BD.resultSet.last())[/b]
                     {
                         pergunta=(BD.resultSet.getString("pergunta"));
                         alt1=(BD.resultSet.getString("alt1"));
                         alt2=(BD.resultSet.getString("alt2"));
                         alt3=(BD.resultSet.getString("alt3"));
                         alt4=(BD.resultSet.getString("alt4"));
                         resposta=(BD.resultSet.getString("resposta"));
                         id=(BD.resultSet.getString("id"));
                     }
                     jLabel10.setText(id);
                     jTextField1.setText(pergunta);
                     jTextField2.setText(alt1);
                     jTextField3.setText(alt2);
                     jTextField4.setText(alt3);
                     jTextField5.setText(alt4);
                     jTextField6.setText(resposta);                   
                }
                 catch(java.lang.Exception ex)
                {
                    ex.printStackTrace();
                }
     }
    botoesf();
    jButton7.setEnabled(true);
    jButton3.setEnabled(true);
    jButton8.setEnabled(true);
}

3 Respostas

A

Não entendi direito, você quer fazer uma quiz mas com perguntas aleatórias ou puxando valores da base de dados? Se você quiser fazer isso, ou apenas atribuir proximo, crie métodos para a chamada, e não a conexao direta no db, isso vai te gerar alguns problemas. Leia a apostila do FJ21 da caelum que você terá uns exemplos de conexão que te ajudarão muito. Outra coisa, crie seu código mais orientado a objeto, assim você terá problemas para a atualização dele.

C
String query = "Select * from facil where id =";

Desculpa, se eu estiver muito afobado, nem li o rerstante do código, mas, qual o id?

WendersonLP

Bem, você poderia criar uma classe que fizesse a conexão com o banco de dados, e também criar métodos, dentro
dela, que retornassem lista da(s) tabela(s). Com essa classe você à utilizaria no código da interface, lá você usaria
um objeto ResultSet, que receberia de um dos métodos criado na classe que faz a conexão, e aí sim você poderia
manipular a posição do cursor com forme a necessidade.
Pense dessa forma que dará certo!

Até mais…

Criado 19 de abril de 2010
Ultima resposta 19 de abr. de 2010
Respostas 3
Participantes 4