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????