Importador de dados

0 respostas
K

Olá,

preciso de uma dica para um importador de dados. Estou trabalhando num projeto que fará a importação dos dados de um banco de dados e depois gerará um arquivo txt com os dados.

O codigo funciona, mas o que ocorre é que o processo torna a maquina lenta, travando ela(só reinicializando a maquina volta a funcionar).

o codigo funcionou uma vez e não foi mais alterado.

Na segunda vez que executei o codigo ele começou a travar a maquina.

Esse é o codigo importador.
import bd.conta_linha;
import java.sql.SQLException;

/**
 *
 * @author GUILHERME
 */
public class gera_corpo_detalhe implements Runnable {
    
    /** Creates a new instance of gera_corpo_detalhe */
    public gera_corpo_detalhe() {
        try {
            quantidade = conta_linha.conta_linhas(grafico.index.sql_oracle);
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        valores = new String[quantidade][53];
        linhas = conta_linha.linhas(grafico.index.sql_oracle);
    }
    private static String gera_nome(String nome){
        int tamanho = nome.length();
        //SSystem.out.println(tamanho);
        if (tamanho < 37){
            
            int numEspacos = 37 - tamanho;
            int p = 0;
            while( p < numEspacos){
                nome.concat(" ");
                p++;
            }
        }
        if(tamanho > 37 ) {
            nome = nome.substring(0,37);
        }
        return nome;
    }
    public void run() {
        
        System.out.println(quantidade);
        
        a = 0;
        while(a < quantidade){
            //   System.out.println("Entrou no laço");
            valores[a][0] = "1";
            valores[a][1] = "02";
            valores[a][2] = "8730107";
            valores[a][3] = "4";
            valores[a][4] = "4";
            valores[a][5] = "00003200";
            valores[a][6] = "X";
            valores[a][7] = "      ";
            if(valores[a][1].length()>= 1000){
                valores[a][8] = linhas[a][0]+"                    ";} else{
                valores[a][8] = linhas[a][0]+"                     ";
                }
            valores[a][9] = "           ";
            valores[a][10] = " ";
            valores[a][11] = "00";
            valores[a][12] = "00";
            valores[a][13] = "   ";
            valores[a][14] = " ";
            valores[a][15] = "AI";
            valores[a][16] = "   ";
            valores[a][17] = "0";
            valores[a][18] = "00000";
            valores[a][19] = "0";
            valores[a][20] = "000000";
            valores[a][21] = "     ";
            valores[a][22] = "??";
            valores[a][23] = "01";
            valores[a][24] = linhas[a][4];
            valores[a][25] = linhas[a][7];
            valores[a][26] = linhas[a][5];
            valores[a][27] = "001";
            valores[a][28] = "0000";
            valores[a][29] = "0";
            valores[a][30] = "01";
            valores[a][31] = "N";
            //    System.out.println("Entrou no meio do laço "+a);
            valores[a][32] = linhas[a][7];
            valores[a][33] = "01";
            valores[a][34] = "10";
            valores[a][35] = "           ";
            valores[a][36] = "000000";
            valores[a][37] = valores[a][35];
            valores[a][38] = "[telefone removido]";
            valores[a][39] = valores[a][35];
            valores[a][40] = "02";
            valores[a][41] = linhas[a][3];
            valores[a][42] = gera_nome(linhas[a][1]);
            valores[a][43] = "";
            valores[a][44] = linhas[a][8]+" "+linhas[a][11];
            valores[a][45] = linhas[a][3];
            valores[a][46] = linhas[a][9];
            valores[a][47] = linhas[a][10];
            valores[a][48] = "RS";
            valores[a][49] = "                                        " ;
            valores[a][50] = "  ";
            valores[a][51] = " ";
            
            if(aham < 10){
                valores[a][52] = "00000"+aham;
                //   System.out.println(valores[a][52]);
            }
            
            if(aham < 100 && aham > 10){
                valores[a][52] = "0000"+aham;
                
            }
            if(aham < 1000 && aham > 100){
                valores[a][52] = "000"+aham;
                
            }
            if(aham < 10000 && aham > 1000){
                valores[a][52] = "00"+aham;
                
            }
            if(aham < 100000 && aham > 10000){
                valores[a][52] = "0"+aham;
            }
            if(aham < 1000000 && aham > 100000){
                valores[a][52] = ""+aham;
            }
            aham++;
            a++;
            System.out.println(a + " QUANTIDADE A");
            g++;

        }
   //   System.out.println("Saiu do laço");
        
    }
    private static  int aham = 1;
    public static int quantidade = 0;
    public static String[][] valores = null;
    public static String[][] linhas = null;
    public static int a;
    public static int g = 0;
}

Gostaria que alguem me ajuda-se a tornar o codigo mais leve.

Alguma dica de como fazer isso????

Criado 13 de outubro de 2006
Respostas 0
Participantes 1