Update não atualiza o banco mysql [RESOLVIDO]

Olá pessoal, tenho o código de um evento que quando acionado faz uma conexão no banco e atualiza o mesmo, o problema é que a atualizaçao não funciona. O código muda o status do text do botão mas não atualiza o banco. Pensei que poderia ser privilegio mas dei o comando para dar acesso a todas as tabelas a esse usuário. O que pode ser?

No banco:

       String driver = "com.mysql.jdbc.Driver"; //Classe do driver JDBC
       String banco = "y"; //Nome do Banco criado
       String host = "10.11.0.21"; //Maquina onde está o banco
       String str_conn = "jdbc:mysql://" + host + ":3306/" + banco; //URL de conexão
       String usuario = "pedro"; //Usuário do banco
       String senha = "1212"; //Senha de conexão    
       
       String agente = jTextField1.getText();
       String verifica = jButton2.getText(); 
       
       if (verifica == "PAUSA"){
          try 
           {
               Class.forName(driver);
               Connection conn = DriverManager.getConnection(str_conn, usuario, senha);
               Statement stmt = conn.createStatement();
               String sql = "update agentes set status = 'PAUSA' WHERE agente = '" + agente + "'";
               jButton2.setText("DESPAUSA");
           }
           catch (ClassNotFoundException ex) {
              System.out.println("Não foi possível carregar o driver.");
              ex.printStackTrace();
           }
           catch (SQLException ex) {
              System.out.println("Problema com o SQL");
              JOptionPane.showMessageDialog(null, "Não foi possivel conectar ao banco de dados para atualizar status agente","", JOptionPane.ERROR_MESSAGE);
              ex.printStackTrace();
           }

        }
        if (verifica == "DESPAUSA"){
           try 
           {
               Class.forName(driver);
               Connection conn = DriverManager.getConnection(str_conn, usuario, senha);
               Statement stmt = conn.createStatement();
               String sql = "update agentes set status = 'LOGADO' WHERE agente = '" + agente + "'";
               jButton2.setText("PAUSA");
           }
           catch (ClassNotFoundException ex) {
              System.out.println("Não foi possível carregar o driver.");
              ex.printStackTrace();
           }
           catch (SQLException ex) {
              System.out.println("Problema com o SQL");
              JOptionPane.showMessageDialog(null, "Não foi possivel conectar ao banco de dados para atualizar status agente","", JOptionPane.ERROR_MESSAGE);
              ex.printStackTrace();
           }
 
        } 

e quando é que você executa o statement ?

coloca o erro pra nos …

Ta faltando executar o update.

Statement stmt = conn.createStatement(); String sql = "update agentes set status = 'PAUSA' WHERE agente = '" + agente + "'"; stmt.execute(sql);

Oi,

Não tá faltando o Commit não?

Tchauzin!

Quando entra no try já executa.

Não dá erro, só não atualiza no banco.

Dá forma que está não executa? Como faço pra executar?

Não sei o que é commit.

1 - Comparação de Strings não é com == mas sim com equals

2 - Não estás a fazer o update, logo não pode ser actualizado no MySql

3 - Em vez de usares Statement, usa PreparedStatement

Quando entra no try já executa.

Não dá erro, só não atualiza no banco.

Dá forma que está não executa? Como faço pra executar?

Não sei o que é commit.[/quote]

Eu coloquei no comentário como fazer.

Quando entra no try já executa.

Não dá erro, só não atualiza no banco.

Dá forma que está não executa? Como faço pra executar?

Não sei o que é commit.[/quote]

Eu coloquei no comentário como fazer.[/quote]

Funcionou amigo, valeu.

[quote=Pedro Ribeiro]Olá pessoal, tenho o código de um evento que quando acionado faz uma conexão no banco e atualiza o mesmo, o problema é que a atualizaçao não funciona. O código muda o status do text do botão mas não atualiza o banco. Pensei que poderia ser privilegio mas dei o comando para dar acesso a todas as tabelas a esse usuário. O que pode ser?

No banco:

[code]
String driver = “com.mysql.jdbc.Driver”; //Classe do driver JDBC
String banco = “y”; //Nome do Banco criado
String host = “10.11.0.21”; //Maquina onde está o banco
String str_conn = “jdbc:mysql://” + host + “:3306/” + banco; //URL de conexão
String usuario = “pedro”; //Usuário do banco
String senha = “1212”; //Senha de conexão

   String agente = jTextField1.getText();
   String verifica = jButton2.getText(); 
   
   if (verifica == "PAUSA"){
      try 
       {
           Class.forName(driver);
           Connection conn = DriverManager.getConnection(str_conn, usuario, senha);
           Statement stmt = conn.createStatement();
           String sql = "update agentes set status = 'PAUSA' WHERE agente = '" + agente + "'";
           jButton2.setText("DESPAUSA");
       }
       catch (ClassNotFoundException ex) {
          System.out.println("Não foi possível carregar o driver.");
          ex.printStackTrace();
       }
       catch (SQLException ex) {
          System.out.println("Problema com o SQL");
          JOptionPane.showMessageDialog(null, "Não foi possivel conectar ao banco de dados para atualizar status agente","", JOptionPane.ERROR_MESSAGE);
          ex.printStackTrace();
       }

    }
    if (verifica == "DESPAUSA"){
       try 
       {
           Class.forName(driver);
           Connection conn = DriverManager.getConnection(str_conn, usuario, senha);
           Statement stmt = conn.createStatement();
           String sql = "update agentes set status = 'LOGADO' WHERE agente = '" + agente + "'";
           jButton2.setText("PAUSA");
       }
       catch (ClassNotFoundException ex) {
          System.out.println("Não foi possível carregar o driver.");
          ex.printStackTrace();
       }
       catch (SQLException ex) {
          System.out.println("Problema com o SQL");
          JOptionPane.showMessageDialog(null, "Não foi possivel conectar ao banco de dados para atualizar status agente","", JOptionPane.ERROR_MESSAGE);
          ex.printStackTrace();
       }

    } 

[/code][/quote]

// para comparar strings usa-se o equals e nao ==
// voce também esqueceu de executar a sua query tem que colocar o stmt.executeUpdate()
if (verifica.equals("DESPAUSA")){  
    try   
    {  
        Class.forName(driver);  
        Connection conn = DriverManager.getConnection(str_conn, usuario, senha);  
        Statement stmt = conn.createStatement();  
        String sql = "update agentes set status = 'LOGADO' WHERE agente = '" + agente + "'";  
         stmt.executeUpdate(sql);  // aqui ira atualizar
        jButton2.setText("PAUSA");  
    }  
    catch (ClassNotFoundException ex) {  
       System.out.println("Não foi possível carregar o driver.");  
       ex.printStackTrace();  
    }  
    catch (SQLException ex) {  
       System.out.println("Problema com o SQL");  
       JOptionPane.showMessageDialog(null, "Não foi possivel conectar ao banco de dados para atualizar status agente","", JOptionPane.ERROR_MESSAGE);  
       ex.printStackTrace();  
    }  
  
}  

Dúvida movida para o fórum de persistência. Por favor, leia com atenção a descrição dos fóruns antes de postar.