galera é o seguinte… estpu realizando a conversão de uns dados para outra base e fiz um mini aplicativo que gera os inserts…
o problema éo seguinte…
tenho um banco com uns 12 mil registros
e outro com 17 mil registros
faço um select e faço um while no resultset ( estou utilizando jdbc puro)
e dentro do while existe um select no banco para verificacação de uns dados ( o cadastro de produtos esta separado em 2 tabelas )
o de 12 mil registros o geração chega em 71% e para… o jframe fica como se não estivesse executando nenhum processo ( fica livre )
o que será ?
segue o código da rotina
public void realizarConversao(String caminhoRA, String caminhoCLIPP) throws IOException
{
textArea.setText("");
/*JFileChooser fsave = new JFileChooser();
fsave.setDialogTitle("Onde pretendes salvar o arquivo SQL ?");
fsave.showSaveDialog(null);
String arquivo = fsave.getSelectedFile().getAbsolutePath();
PrintWriter saida = new PrintWriter(new FileOutputStream(new File(arquivo),false),false);*/
//conexões
Conexao conRA = new Conexao(caminhoRA);
Conexao conRAaux = new Conexao(caminhoRA);
//fim das conexões
try {
PreparedStatement stmt = conRA.getConexao().prepareStatement("select count(*) as total from MATERIAL");
ResultSet rs11 = stmt.executeQuery();
rs11.next();
int valor = rs11.getInt("total");
progressBar.setMaximum(valor);
PreparedStatement stmtM = conRA.getConexao().prepareStatement("select * from MATERIAL");
ResultSet rs = stmtM.executeQuery();
progressBar.setValue(0);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date data = new Date();
List<String> linhas = new ArrayList<String>();
int a = 0;
while(rs.next())
{
a = a+1;
progressBar.setValue(progressBar.getValue()+1);
paintComponents(getGraphics());
// System.out.println("Codigo = "+rs.getString("CODIGO"));
PreparedStatement stmtConsulta = conRAaux.getConexao().prepareStatement("select * from PRODUTO where CODIGO = '" +
rs.getString("CODIGO")
+"'");
textArea.setText("Gerando o SQL...");
textArea.append("-------------------------------------------------");
ResultSet rsConsulta = stmtConsulta.executeQuery();
if(rsConsulta.next())
{
String sql_tb_estoque =
"INSERT INTO TB_ESTOQUE (ID_ESTOQUE, ID_GRUPO, DESCRICAO, STATUS," +
" DT_CADAST, HR_CADAST, FRACIONADO, PRC_VENDA, PRC_CUSTO, ULT_VENDA" +
", MARGEM_LB, POR_COMISSAO, ULT_FORNEC, GRADE_SERIE, ID_TIPOITEM," +
" ID_CTI, OBSERVACAO, CST_PIS, CST_COFINS, PIS, COFINS, UNI_MEDIDA)" +
" VALUES (" +rs.getString("CODIGO")
+",null,'" +rs.getString("NOME")
+"','A','" +sdf.format(data)
+"','00:00:00'" +
",'N'," +rsConsulta.getDouble("PVENDA")
+",null,null,null,null,null,'N',0," +converteCTI(rsConsulta)
+"," +
"null,'99','99',0,0,'" +rs.getString("UNID")
+"');";
linhas.add(sql_tb_estoque);
//textArea.append(sql_tb_estoque+"\n");
//textArea.repaint();
//saida.print(sql_tb_estoque);
//saida.write(13);
//saida.write(10);
//stmtClipp.addBatch(sql_tb_estoque);
String sql_tb_est_lol = "INSERT INTO TB_EST_IDENTIFICADOR (ID_IDENTIFICADOR, ID_ESTOQUE, CHAVE) VALUES (" +
"" +rs.getString("CODIGO")
+"," +rs.getString("CODIGO")
+",null);";
linhas.add(sql_tb_est_lol);
// textArea.append(sql_tb_est_lol+"\n");
// stmtClipp.addBatch(sql_tb_est_lol);
//textArea.repaint();
String sql_tb_est_produto =
"INSERT INTO TB_EST_PRODUTO (ID_IDENTIFICADOR, DESC_CMPL, COD_BARRA," +
" REFERENCIA, PRC_MEDIO, QTD_COMPRA, QTD_ATUAL, QTD_MINIM, QTD_INICIO," +
" QTD_RESERV, QTD_POSVEN, ULT_COMPRA, PESO, IPI, CF, CST, IAT, IPPT," +
" COD_NCM, ID_NIVEL1, ID_NIVEL2, MVA, CST_IPI, FOTO, CSOSN) VALUES (" +
"" +rs.getString("CODIGO")
+","
+"null,'" +rs.getString("REFERENCIA")
+"',null,null,null," +
"10000,null,null,null,null,null,null," +
"0,null," +converteCST(rsConsulta)
+",'A','T',null,null,null,0,null,null," +converteCSOSN(rsConsulta.getString("TRIB"))
+"" +
");";
linhas.add(sql_tb_est_produto);
*/ //textArea.append(sql_tb_est_produto+"\n");
//stmtClipp.addBatch(sql_tb_est_produto);
//textArea.repaint();
// }
}
JOptionPane.showMessageDialog(null, "Comandos Gerados com Exito.");
/*
for(String a: linhas)
{
textArea.append(a);
paintComponents(getGraphics());
}*/
//stmtClipp.executeBatch();
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, "Erro no Conversor: "+e.getMessage());
//progressBar.setIndeterminate(false);
}
}
me ajudem galera, preciso resolver isso urgente