Gente boa, cheguei agora aqui no Forum e esse é o meu 1º tópico!
Estou com uma aplicação dando problema quando tento salvar os valores no banco.
private void Salvar_Update() {
        String editarFun = null;
        int vcargo = 0, vsetor = 0;
        vcargo = cbCargo.getSelectedIndex();
        vsetor = cbSetor.getSelectedIndex();
        try {
            int cod_fun = 0;
            cod_fun = Tfun.rs.getInt("FUN_COD");
            editarFun = "UPDATE FUNCIONARIOS SET FUN_NOME ='" + txNome.getText() + "',FUN_CPF='"
                    + txCPF.getText() + "', FUN_RG='" + txRG.getText() + "', FUN_CEP='"
                    + txCEP.getText() + "', FUN_NUMERO='" + txNumero.getText() + "', FUN_COMPLE='"
                    + txComple.getText() + "', FUN_TEL='" + txTele.getText() + "', FUN_CARGO='"
                    + vcargo + "', FUN_SETOR='" + vsetor + "', FUN_SALARIO='" + txSalario
                    + "', FUN_SEXO='" + sexo + "'"
                    + " WHERE FUN_COD=" + cod_fun + ";";
            Tfun.st.executeUpdate(editarFun);
            JOptionPane.showMessageDialog(null, "Cliente alterado com Sucesso!!!");
            Tfun.exeSQL("SELECT * FROM CLIENTE");
        } catch (SQLException erro) {
            JOptionPane.showMessageDialog(null, "Erro ao Salvar!" + "\n" + erro + "\n" + editarFun);
        }
    }O campo salário lá no banco é DOUBLE.
Deu pra entender, galera? Alguém pode me ajudar?
Sistemas utilizados: NetBeans 6.9.1, MySQL 5.1.35
         
        
           
         
            
       
      
        
        
          Da um System.out.println no txSalario.
Tente remover a aspa simples em FUN_SALARIO=’" + txSalario + "’
Outra coisa, use PreparedStatement ao inves de Statement.
         
        
           
         
            
       
      
        
          
          
            Roger75  
          
              
                Setembro 21, 2012, 10:07am
               
              #3 
           
         
        
          Talvez você esteja tentando colocar um valor além da capacidade do campo. Veja quantas casas decimais está passando.
         
        
           
         
            
       
      
        
        
          Olá brunokchimbo,
Complementando as dicas dos colegas, sugiro a adoção do tipo decimal, ao invés de double, pois, double não tem precisão, já decimal tem.
Veja este post: http://paposql.blogspot.com.br/2011/10/como-armazenar-informacoes-do-tipo.html 
Abraços.
_ _Papo Sql  - Um blog com tutoriais, dicas e truques sobre SQL
         
        
           
         
            
       
      
        
        
          Sei que voce está começando, mas estuda sobre PreparedStatement, irá lhe ajudar muito.
Abaixo segue uma classe que uso como padrao. Tente implementa-la futuramente:
[code]package Utilitarios;
import java.sql.Connection;
public class Conexao{
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static String DATABASE_URL = "";
Connection connection = null; // gerencia a conexão
PreparedStatement pstmt = null;
public ResultSet resultset;
public void conectar(){
    try {
        DATABASE_URL = "jdbc:mysql://localhost/bancodedados";
        Class.forName(JDBC_DRIVER);
        // estabelece conexão com o banco de dados
        connection = DriverManager.getConnection( DATABASE_URL, "root", "minhasenhaaqui" );
        
    } catch (ClassNotFoundException ex) { 
        ex.printStackTrace();
    } catch (SQLException ex) { 
        ex.printStackTrace();
    }
}
public void desconectar(){
    try                                                        
     {                                                          
        //statement.close();                                      
        connection.close();                                     
     }
     catch ( NullPointerException exception )                              
     {                                                          
        exception.printStackTrace();
     }
    catch ( Exception exception )                              
     {                                                          
        exception.printStackTrace();
     }
}
public void update(String sql, Object dados[]){
    try {
        // cria Statement para consultar banco de dados
        pstmt = connection.prepareStatement(sql);
        
        for(int i = 0; i < dados.length; i++){
            if(dados[i] instanceof Integer){
                pstmt.setInt(i+1, Integer.parseInt(String.valueOf(dados[i])));
            } else if(dados[i] instanceof String)
            {
                pstmt.setString(i+1, (String) dados[i]);
            } else if(dados[i] instanceof Date){
                pstmt.setDate(i+1, (java.sql.Date)dados[i]);
            } else if(dados[i] instanceof Float){
                pstmt.setFloat(i+1, Float.parseFloat(String.valueOf(dados[i])));
            } else if(dados[i] == null){
                pstmt.setNull(i+1, Types.DATE);
            }
        }
        
        //pstmt.setString(1, "Teste");
        pstmt.executeUpdate();
        
        
    } catch (SQLException ex) {  
        ex.printStackTrace();
    }
}
public void select(String sql){
    try {
        // cria Statement para consultar banco de dados
        
        pstmt = connection.prepareStatement(sql);
        resultset = pstmt.executeQuery();
    } catch (com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException ex){
        ex.printStackTrace();
    } catch (SQLException ex) {
        ex.printStackTrace();
    }
    
}
public byte insert(String sql, Object dados[]){
    try {
        // cria Statement para consultar banco de dados
        pstmt = connection.prepareStatement(sql);
        
        for(int i = 0; i < dados.length; i++){
            if(dados[i] instanceof Integer){
                pstmt.setInt(i+1, Integer.parseInt(String.valueOf(dados[i])));
            } else if(dados[i] instanceof String)
            {
                pstmt.setString(i+1, (String) dados[i]);
            } else if(dados[i] instanceof Date){
                pstmt.setDate(i+1, (java.sql.Date)dados[i]);
            } else if(dados[i] instanceof Float){
                pstmt.setFloat(i+1, Float.parseFloat(String.valueOf(dados[i])));
            } else if(dados[i] == null){
                pstmt.setNull(i+1, Types.DATE);
            }
        }
        pstmt.executeUpdate();
        return 1;
    } catch (MySQLIntegrityConstraintViolationException ex) {  
        //Nesse caso, o item ja existe
        return 2;
    } catch (SQLException e){
        JOptionPane.showMessageDialog(null, "Algum erro inesperado ocorreu!");
        Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, e);
        return 3;
    }
}
public void delete(String sql){
    try {
        pstmt = connection.prepareStatement(sql);
        int deletados = pstmt.executeUpdate();
    } catch (SQLException ex) {
        Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
    }
}
}[/code]
Dei uma mexida nele para postar aqui visto que eu puxava algumas informações de um arquivo XML… se algo nao funcionar, provavelmente é isso… dai voce diz ai que eu arrumo pra voce…
Abraços
         
        
           
         
            
       
      
        
        
          O campo txSalario é um campo texto? nao faltou ou .getText() ?
editarFun = "UPDATE FUNCIONARIOS SET FUN_NOME ='" + txNome.getText() + "',FUN_CPF='"  
                    + txCPF.getText() + "', FUN_RG='" + txRG.getText() + "', FUN_CEP='"  
                    + txCEP.getText() + "', FUN_NUMERO='" + txNumero.getText() + "', FUN_COMPLE='"  
                    + txComple.getText() + "', FUN_TEL='" + txTele.getText() + "', FUN_CARGO='"  
                    + vcargo + "', FUN_SETOR='" + vsetor + "', FUN_SALARIO='" + txSalario.getText()  
                    + "', FUN_SEXO='" + sexo + "'"  
                    + " WHERE FUN_COD=" + cod_fun + ";";  
         
        
           
         
            
       
      
        
        
          Valeu mesmo, galera! Principalmente ao Gleidson Henrique que teve o trabalho
Bom, depois de ler a ultima resposta…
marcospaulo.suporte  disse:
O campo txSalario é um campo texto? nao faltou ou .getText() ?
view plaincopy to clipboardprint?
editarFun = "UPDATE FUNCIONARIOS SET FUN_NOME ='" + txNome.getText() + "',FUN_CPF='"    
                    + txCPF.getText() + "', FUN_RG='" + txRG.getText() + "', FUN_CEP='"    
                    + txCEP.getText() + "', FUN_NUMERO='" + txNumero.getText() + "', FUN_COMPLE='"    
                    + txComple.getText() + "', FUN_TEL='" + txTele.getText() + "', FUN_CARGO='"    
                    + vcargo + "', FUN_SETOR='" + vsetor + "', FUN_SALARIO='" + txSalario.getText()    
                    + "', FUN_SEXO='" + sexo + "'"    
                    + " WHERE FUN_COD=" + cod_fun + ";"; 
 
…fiz um pouco diferente do que me disse o Sem_Nome.
O meu código ficou assim:
private void Salvar_Update() {
        String editarFun = null;
        int vcargo = 0, vsetor = 0;
        vcargo = cbCargo.getSelectedIndex();
        vsetor = cbSetor.getSelectedIndex();
        try {
            int cod_fun = 0;
            cod_fun = Tfun.rs.getInt("FUN_COD");
            editarFun = "UPDATE FUNCIONARIOS SET FUN_NOME ='" + txNome.getText() + "',FUN_CPF='"
                    + txCPF.getText() + "', FUN_RG='" + txRG.getText() + "', FUN_CEP='"
                    + txCEP.getText() + "', FUN_NUMERO='" + txNumero.getText() + "', FUN_COMPLE='"
                    + txComple.getText() + "', FUN_TEL='" + txTele.getText() + "', FUN_CARGO='"
                    + vcargo + "', FUN_SETOR='" + vsetor + "', FUN_SALARIO='" + txSalario.getText()
                    + "', FUN_SEXO='" + sexo + "'"
                    + " WHERE FUN_COD=" + cod_fun + ";";
            Tfun.st.executeUpdate(editarFun);
            JOptionPane.showMessageDialog(null, "FUNCIONARIO alterado com Sucesso!!!");
            Tfun.exeSQL("SELECT * FROM FUNCIONARIOS");
        } catch (SQLException erro) {
            JOptionPane.showMessageDialog(null, "Erro ao Salvar!" + "\n" + erro + "\n" + editarFun);
        }
        txNome.setText(editarFun);
    }Mais uma vez, grato a todos!
         
        
           
         
            
       
      
        
        
          Não use concatenação de strings, isso além de não ser performático, pois a cada concatenação você cria uma 3 string, permite SQL Injection.
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/StringBuilder.html 
         
        
           
         
            
       
      
        
        
          E use preparedStatement como alguém falou.
Por fim faltou fechar o statement e a connection em um bloco finally, ou usar o fechamento automático de recursos do java 7.