Update não atualiza o banco mysql [RESOLVIDO]

10 respostas
P

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();
           }
 
        }

10 Respostas

G

e quando é que você executa o statement ?

Lindberg

coloca o erro pra nos …

romarcio

Ta faltando executar o update.

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

lina

Oi,

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

Tchauzin!

P

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.

pmlm

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

romarcio

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.

Eu coloquei no comentário como fazer.

P

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.

Eu coloquei no comentário como fazer.

Funcionou amigo, valeu.

julianolandim
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:
GRANT ALL PRIVILEGES ON *.* TO 'pedro' IDENTIFIED BY '1212';
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();
           }
 
        }
// 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();  
    }  
  
}
ViniGodoy

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.

Criado 6 de setembro de 2011
Ultima resposta 6 de set. de 2011
Respostas 10
Participantes 8