Erro ao tentar fazer alteração

1 resposta
A
pessoal, fiz o codigo abaixo para fazer alterações na base de dados, porem esta dando o seguinte erro
Erro sqlex: No parameters defined during prepareCall()
alguem sabe o pode estar acontecendo ? segue ai o meu codigo:
public static void alterausuarios(JTextField usuario,JPasswordField senha,JTextField nome, JCheckBox jch_restrito,JCheckBox jch_produtos){
        JCheckBox [] tf = campos2(jch_restrito,jch_produtos);
    
        String user = usuario.getText();
        char[] passwd = senha.getPassword();
        String name = nome.getText();
        
        try{            
                Class.forName("org.gjt.mm.mysql.Driver");
                Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/uni30","root","adelmo");
                Statement stmt = conn.createStatement(); // dizendo que irei passar mensagens ao banco
                  String SQL = "update cadusu set usu_usuario='"+usuario.getText()+"', usu_senha='"+senha.getPassword()+"', usu_nome='"+nome.getText()+"', usu_rest='"+jch_restrito.isSelected()+"', usu_prod='"+jch_produtos.isSelected()+"' where usu_usuario = '"+usuario.getText()+"'";
            stmt.executeUpdate(SQL);
        }
        catch(ClassNotFoundException cnfe)
        {
           System.out.println("Erro cnfe: " + cnfe.getMessage());           
        }
        catch(SQLException sqlex)
        {
            System.out.println("Erro sqlex" + sqlex.getMessage()); 
            System.out.println("Erro sqlex" + sqlex.getLocalizedMessage()); 
          }
        
        
    }

1 Resposta

davidbuzatto

Muda isso aqui

Statement stmt = conn.createStatement(); // dizendo que irei passar mensagens ao banco String SQL = "update cadusu set usu_usuario='"+usuario.getText()+"', usu_senha='"+senha.getPassword()+"', usu_nome='"+nome.getText()+"', usu_rest='"+jch_restrito.isSelected()+"', usu_prod='"+jch_produtos.isSelected()+"' where usu_usuario = '"+usuario.getText()+"'"; stmt.executeUpdate(SQL);

Para isso:

String SQL = "update cadusu set usu_usuario=?, usu_senha=?, usu_nome=?, usu_rest=?, usu_prod=? where usu_usuario = ?; stmt.setString( 1, usuario.getText() ); // usa um setString, setInt (dependendo do tipo) para cada ? PreparedStatement stmt = conn.prepareStatement( SQL ); stmt.executeUpdate();

Até mais

Criado 18 de julho de 2007
Ultima resposta 19 de jul. de 2007
Respostas 1
Participantes 2