Duvida sql

5 respostas
D

Sendo a classe funcionarioDAO e Aumento funcionario, minha duvida é a seguinte, fazer um update no salario dos funcionarios, gostaria de fazer direto no sql por exemplo"update funcionario set salario = salario + aumento", minha duvida é a seguinte o usuario irar digitar o aumento como consigo pegar esses dados e usar no update.

public class FuncionarioDAO {
    private Connection con;
    public FuncionarioDAO(){
        con = new ConnectionFactory().getConnection();
    }
    public void cadastrar(Funcionario f)
    {
        String sql = "insert into funcionario(nome,salario)values(?,?)";
        try
        {
            PreparedStatement stmt = con.prepareStatement(sql);
            stmt.setString(1, f.getNome());
            stmt.setInt(2, f.getSalario());
            stmt.execute();
            stmt.close();

        }catch(SQLException e)
        {
            throw new RuntimeException(e);
        }
        
    }
    public void aumentar(Funcionario f)
    {
        String sql = "update funcionario set salario = salario";
        
        try
        {
            PreparedStatement stmt = con.prepareStatement(sql);
            
        }catch(SQLException e)
        {
            throw new RuntimeException(e);
            
        }
        }
        
        
    }

    
}
public class AumentoFuncionario {

public static void main(String args[]){

Scanner sc = new Scanner(<a href="http://System.in">System.in</a>);
Funcionario f = new Funcionario();
FuncionarioDAO dao = new FuncionarioDAO();
System.out.println(“Digite a porcentagem de aumento?”);

int porcentagem = sc.nextInt();

dao.aumentar(f);
}

}

5 Respostas

Henrique_Moraes

Você pode utilizar dessa forma

public void aumentar(Funcionario f)  
    {  
        String sql = "update funcionario set salario = (salario + ?)";  
          
        try  
        {  
            PreparedStatement stmt = con.prepareStatement(sql);  
             
            stmt.setDouble(1, valorDeAumento ) ;

            stmt.executeUpdate()

        }catch(SQLException e)  
        {  
            throw new RuntimeException(e);  
              
        }  
        }  
          
          
    }
D

Vlw cara deu certo

Henrique_Moraes

xD

A

Você ainda vai colocar o where para o id do funcionário no seu código né?

Do jeito que está, vai sempre atualizar o salario de todos.

D

AbelBueno a intençao é aumentar o salario de todos msm, obrigado pela dica, foi so mudar a logica pq era em porcetagem para update funcionario set salario = (salario + ((?/100) * salario)

Criado 14 de maio de 2013
Ultima resposta 15 de mai. de 2013
Respostas 5
Participantes 3