[RESOLVIDO] Vários update através de um for, é possível?

Boa tarde galera, estou tentando fazer varias alterações em banco conforme os dados de uma tabela. Porém a instrução fica executando e não termina justamente no ponto destacado.

Alguém poderia ajudar, é possível fazer o que estou tentando, qual seria a maneira correta.

Seu código não está performático, você criando uma instância de PreparedStatement em cada iteração do for não fica legal, tente isso e veja se ajuda…

...
String sql = "UPDATE FP32T5 SET FP32COD = NULL WHERE FP32NOME = ?";
PreparedStatement ps = new con.prepareStatement(sql);

for (int x = 0; x < numeroLinhas; x++) {
    ...
    ps.setString(1, nome);
    ps.executeUpdate();
}

Perceba que a string sql não precisa ser redeclarada no laço, assim como ps, cria-se uma única vez e reaproveita o conteúdo, mudando apenas o nome a cada iteração…

2 curtidas

Ou, melhor ainda:

for (int x = 0; x < numeroLinhas; x++) {
    ...
    ps.setString(1, nome);
    ps.addBatch();
}
ps.executeBatch();
2 curtidas

A melhor maneira é a que o pmlm colocou

Através de addBatch();, você adiciona conjuntos de parâmetros ao objeto ps.
Ao executar ps.executeBatch();, você está enviando um pacote de comandos para serem executados no banco.

2 curtidas

Eu tinha tentando dessa forma, pois tive esse pensamento também, realmente não fica legal, mas após não ter dado certo apenas dei um ctrl + z e pensei vou pedir ajuda para os feras. Mas de qualquer forma amanhã de manhã farei os ajustes e dou um retorno.

Acho que é exatamente isso que precisava, executar vários comandos sql em um só bloco. Testarei amanhã de manhã.

Grato pelo esclarecimento do comando, não tinha conhecimento do mesmo.