Pessoal, tenho o método abaixo que uso para listar dados de uma tabela temporária e exibir para o usuário verificar se tem algum erro, antes de inserir da tabela real onde os dados precisam estar.
…bom tenho dúvida de como pegar os dados dessa lista temp e inserir da minha outra tabela a lógica no metodo.
[code] public List listarDataTemp() {
try {
conn = (Connection) ConnectionFactory.getConnection();
String sql = “Select * from temp”;
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
List lista = new ArrayList();
não está dando erro não, esse método acima funciona normal, ele lista os dados da minha tabela temporária, o que eu preciso é pegar esses dados da lista e inserir em outra tabela.
eu sempre uso essa segunda sugestão que te passei. No caso, você usaria o executeUpdate do seu Statement. (é bem mais rápido que rodar o insert linha a linha). O que pode impedir a segunda opção de funcionar perfeitamente é o tamanho do spool do seu banco de dados, mas nesse caso, você poderia particionar a lógica de insert em uns dois ou três inserts dependendo do caso (filtrando resultados no select), roda uma instrução de insert assim em um cliente SQL e você vai ver como funciona.
Sobre a sua segunda pergunta, claro que consegue fazer com um for. Mas como eu disse na primeira sugestão, usar um addBatch (teria que ser num looping, tipo o for) no PreparedStatement vai ter melhor efeito.