Ola,
Estou realizando essa consulta:
[code]
public Collection<ProdutoVO> recuperarProdutos() {
produtos = new ArrayList<ProdutoVO>();
Connection conn = AcessaBanco.getInstance().abreConexao();
String sql = "SELECT DESCRICAO, CDPROD, CFISCAL, UNIDADE, DEPTO, CODBARRA, STCOFINS, STPIS FROM ESTOQUE";
try {
st = conn.createStatement();
rs = st.executeQuery(sql);
while (rs.next()) { //Como colocar esse while em por exemplo 5 Threads
ProdutoVO produto = new ProdutoVO();
produto.setCodigo(rs.getInt("CODIGO");
produto.setDescricao(rs.getString("DESCRICAO"));
produto.setNcm(rs.getString("CFISCAL"));
...
produto = recuperarDadosSaldos(produto);
produtos.add(produto);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
return produtos; //Tem 20.000 registros aqui
}[/code]
Eu gostaria de saber como eu faria para colocar o while do comentario em Threads. Trabalhando com JPA conseguimos fazer assim:
q.setMaxResults(batchSize); //Esse metodo achei statement.setFetchSize(int max) ou statement.setMaxRows(int max)
q.setFirstResult(getFirstItem()); //Neste e no proximo é que nao consegui achar similares
return q.getResultList();
Nao consegui encontrar os metodos em Statement nem em ResultSet para quebra o resultado da consulta e colocar as varias partes em 10 Threads por exemplo.
Esse codigo do jeito que esta ai executa em 19 minutos. Gostaria de reduzir o tempo.
Grato a todos desde já