Netbeans Atualizar registro no SQL UPDATE + SET

3 respostas
javamysql
N

Já revirei os tópicos e não consegui colocar pra rodar no meu programa.
é simples. Tenho uma tabela no SQL que uma parte é preenchida quando o Motorista sai com o carro da empresa, e outra parte é preenchida quando ele retorna da empresa. Separei isso em Forms diferentes no netbeans, a parte de inserir os dados já está funcionando OK, mas preciso que quando ele retorne com o carro ele pelo número da FICHA DE MOVIMENTAÇÃO busque o registro no banco de dados atualizando os campos que ele terá que digitar. Abaixo vou colocar a parte de uma função chamada Atualiza, acho que meu erro está nela, por uso outra classe para a conexão.

public void atualiza(Movimentacao movimentacao){
        String sql = "UPDATE movimentacao SET ficha = +movimentacao.getFicha() VALUES (?,?,?,?)";
        try{
            
            PreparedStatement stmt = connection.prepareStatement(sql);
            
            stmt.setString(1,movimentacao.getFicha());
            stmt.setString(2,movimentacao.getDataentrada());
            stmt.setString(3,movimentacao.getHoraentrada());
            stmt.setString(4,movimentacao.getOdometroentrada());
            
            stmt.execute();
            stmt.close();
        } catch (SQLException u){
            throw new RuntimeException(u);
        }
        
    }

3 Respostas

P

assim, sql e java são duas coisas completamente diferentes.

assim fazer

SET ficha = +movimentacao.getFicha()

não faz o menor sentido fera. pior isso

UPDATE movimentacao SET ficha = +movimentacao.getFicha() VALUES (?,?,?,?)
não faz o menor sentido ao quadrado.

a sintaxe do update é

UPDATE tabela
SET campo = valor
WHERE condicao1 
AND condicao2
...

onde o SET vc pode fazer SET campo = campo + valor

ponto.

entao vc quer fazer algo assim:

String updateTableSQL = "UPDATE DBUSER SET USERNAME = ? WHERE USER_ID = ?";
PreparedStatement preparedStatement = dbConnection.prepareStatement(updateTableSQL);
preparedStatement.setString(1, "mkyong_new_value");
preparedStatement.setInt(2, 1001);
// execute insert SQL stetement
preparedStatement .executeUpdate();

adapte ao seu codigo e manda bala

N

Obrigado pczenyj. Agradeço me repassar um pouco de seu conhecimento.
Fiz essa adaptação, mas não funfou aparede o erro > Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException - Tentei ver se tem alguma variável que não está inicializada ou algo assim.

public void atualiza(Movimentacao movimentacao){

String sql = UPDATE movimentacao SET ficha = ? WHERE Dataentrada = ? AND horaentrada = ? AND odometroentrada = ?;

try{
PreparedStatement stmt = connection.prepareStatement(sql);
        
        stmt.setString(1,movimentacao.getFicha());
        stmt.setString(2,movimentacao.getDataentrada());
        stmt.setString(3,movimentacao.getHoraentrada());
        stmt.setString(4,movimentacao.getOdometroentrada());
        stmt.execute();
        stmt.close();

    } catch (SQLException u) {
        throw new RuntimeException(u);
    }
    
}
P

olha a stack trace do erro ué

Criado 17 de outubro de 2016
Ultima resposta 17 de out. de 2016
Respostas 3
Participantes 2