Recuperar ResultSet usando CallableStatement após executeBatch () Desenvolvimento Java
Recuperar ResultSet usando CallableStatement após executeBatch ()
Eu preciso chamar o procedimento armazenado várias vezes e usar executeBatch() para isso. Cada chamada deve retornar a tabela com resultados, mas não consegui acessar esses resultados. O próximo código funciona bem:
callableStatement.setString(1, "foo"); callableStatement.setString(2, "bar"); callableStatement.execute(); resultSet = callableStatement.getResultSet();
Mas o próximo código não funciona como esperado:
for (String str : strings) { callableStatement.setString(1, str); callableStatement.setString(2, "bar"); callableStatement.addBatch(); } callableStatement.executeBatch(); resultSet = callableStatement.getResultSet(); // returns null
Eu já tentei chamar callableStatement.getUpdateCount() e callableStatement.getMoreResults() antes de extrair ResultSet, mas sem sucesso.
Usando o class.forname, mas deseja recuperar os membros da class de destino
como gerar assinatura digital com certificado x509?
Expressão regular em Java e meta-caracteres de escape
Este não é realmente o uso correto de #executeBatch . Os methods em lote são para manipular dados, e não para obter dados de resultados. Ou seja, você pode fazer inserções / atualizações / exclusões em lote, mas não leituras. O resultado de #executeBatch é a contagem de atualizações, indicando quantas alterações foram feitas por operação em lote
A intenção é que você possa melhorar o desempenho aliviando a sobrecarga de rede e a viagem de ida e volta ao database para operações de manipulação de dados semelhantes.
Normalmente, você não executa consultas no lote porque consultas diferentes resultariam em ResultSet s com formas diferentes (a menos que fossem todas para a mesma tabela com as mesmas colunas, mas com uma consulta diferente [mas por que não apenas modificar sua consulta]).