JProgressBar

5 respostas
P

Tenho um programa que lê um arquivo texto .CSV e tranfere para o banco de dados MySQL

String arquivoEscolhido = null;
        try {
            conArquivo.resultset.first();
            arquivoEscolhido = conArquivo.resultset.getString("caminho_arquivo");
        } catch (SQLException ex) {
            Logger.getLogger(expedicao.class.getName()).log(Level.SEVERE, null, ex);
        }

        BufferedReader in = new BufferedReader(new
                FileReader(arquivoEscolhido));
        String linha;

        while ((linha = in.readLine()) != null) {
            String conteudo[] = linha.split(";");
            String sqlInsert = "insert into notas_faturadas "+
                    "(numNF, serie, dataEmissao, status, cliente, transp, " +
                    "codItem, qtd, descricao) values ('"+
                    conteudo[0]+"','"+
                    conteudo[1]+"','"+
                    conteudo[2]+"','"+
                    conteudo[3]+"','"+
                    conteudo[6]+"','"+
                    conteudo[7]+"','"+
                    conteudo[8]+"','"+
                    conteudo[10]+"','"+
                    conteudo[9]+"')";
            try {
                conNotas.statement.executeUpdate(sqlInsert);
            } catch(SQLException ex) {
                JOptionPane.showMessageDialog(null,"Erro ao inserir dados na " +
                        "tabela itens\n\n"+ex);
            }
        }

Como essa importação as vezes demora, pois alguns arquivos tem mais de 1.000 linhas, gostaria que um jProgressBar indicasse o andamento do processo, porem nao tenho ideia de como fazer isso. Alguem pode me ajudar.

Abraços
DOUGLAS LOPES

5 Respostas

diego2005

Dá uma lida na api da JProgressBar

Alguns métodos que podem te ajudar:

progressBar = new JProgressBar(); progressBar.setMaximum(newLength); progressBar.setValue(newValue);

T+

Marky.Vasconcelos

E cara… voce pode criar uma SQL que adicione todos valores de uma vez. Com certeza seria mais rapido do que fazer insert de linha a linha.

P

e como seria essa SQL?

Marky.Vasconcelos

e como seria essa SQL?

StringBuilder sqlInsert = new StringBuilder(INSERT INTO notas_faturadas (numNF, serie, dataEmissao, status, cliente, transp, codItem, qtd, descricao) values ");
while ((linha = in.readLine()) != null) {
            String conteudo[] = linha.split(";");
          sqlInsert.append("('").append(conteudo[0]).append("','");
          sqlInsert.append(conteudo[1]).append("','");
          sqlInsert.append(conteudo[2]).append("','");
          sqlInsert.append(conteudo[3]).append("','");
          sqlInsert.append(conteudo[6]).append("','");
          sqlInsert.append(conteudo[7]).append("','");
          sqlInsert.append(conteudo[8]).append("','");
          sqlInsert.append(conteudo[10]).append("','");
          sqlInsert.append(conteudo[9]).append("'),");
}
sqlInsert.replace(sqlInsert.length()-1, sqlInsert.length(),";");
 try {  
                 conNotas.statement.executeUpdate(sqlInsert.toString());  
      }catch(SQLException ex){
                  JOptionPane.showMessageDialog(null,"Erro ao inserir dados na tabela itens\n\n"+ex);  
}
P

e como seria essa SQL?

StringBuilder sqlInsert = new StringBuilder(INSERT INTO notas_faturadas (numNF, serie, dataEmissao, status, cliente, transp, codItem, qtd, descricao) values "); while ((linha = in.readLine()) != null) { String conteudo[] = linha.split(";"); sqlInsert.append("('").append(conteudo[0]).append("','"); sqlInsert.append(conteudo[1]).append("','"); sqlInsert.append(conteudo[2]).append("','"); sqlInsert.append(conteudo[3]).append("','"); sqlInsert.append(conteudo[6]).append("','"); sqlInsert.append(conteudo[7]).append("','"); sqlInsert.append(conteudo[8]).append("','"); sqlInsert.append(conteudo[10]).append("','"); sqlInsert.append(conteudo[9]).append("'),"); } sqlInsert.replace(sqlInsert.length()-1, sqlInsert.length(),";"); try { conNotas.statement.executeUpdate(sqlInsert.toString()); }catch(SQLException ex){ JOptionPane.showMessageDialog(null,"Erro ao inserir dados na tabela itens\n\n"+ex); }

cara valeu mesmo… deu certo, ficou perfeito… melhor q a progressBar
brigadao mesmo

Criado 26 de maio de 2009
Ultima resposta 27 de mai. de 2009
Respostas 5
Participantes 3