Boa tarde!
Eu estou com um problema, eu preciso ler um arquivo txt e inserir o dados no banco.
Consegui efetuar a leitura do arquivo, consegui separa-lo por substring, consegui a conexão com o banco, mas efetuar o insert nada feito.
Preciso de uma ajuda para saber onde estou errando. Segue o código.
Classe ReadTxt
[code]package importaTxt;
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class ReadTxt {
public void ler() {
File file = new File("c:/bd/bd.txt");
{
try {
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
classeAtributos at = new classeAtributos();
String line = scanner.nextLine();
//Header
at.HEADER_ID_DADOS = line.substring(0, 0);
at.HEADER_TIPO_REGISTRO = line.substring(1, 1);
at.HEADER_COD_ESCRITORIO = line.substring(2, 6);
at.HEADER_DATA_LOTE = line.substring(7, 14);
at.HEADER_HORA_LOTE = line.substring(15, 18);
at.HEADER_AGENCIA = line.substring(19, 22);
at.HEADER_ESPACO1 = line.substring(23, 23);
at.HEADER_CONTA_CORRENTE = line.substring(24, 30);
at.HEADER_ESPACO2 = line.substring(31, 31);
at.HEADER_NUMERO_SEQUENCIAL = line.substring(32, 33);
at.HEADER_ESPACO3 = line.substring(34, 34);
at.HEADER_ID_ARQUIVO = line.substring(35, 38);
at.HEADER_TIPO_COBRANCA = line.substring(39, 39);
at.HEADER_ESPACO_LIVRE = line.substring(40, 1200);
at.TRAILLER_TIPO_REGISTRO = line.substring(1, 1);
at.TRAILLER_CODIGO_ESCRITORIO = line.substring(2, 6);
at.TRAILLER_DATA_LOTE = line.substring(7, 14);
at.TRAILLER_HORA_LOTE = line.substring(15, 18);
at.TRAILLER_AGENCIA = line.substring(19, 22);
at.TRAILLER_ESPACO = line.substring(23, 23);
at.TRAILLER_CONTA_CORRENTE = line.substring(24, 30);
at.TRAILLER_QUANTIDADE_REGISTROS = line.substring(31, 35);
at.TRAILLER_ESPACO_LIVRE = line.substring(36, 1200);
//Acordo
at.ACORDO_ID_DADOS = line.substring(0, 0);
at.ACORDO_TIPO_REGISTRO = line.substring(1, 1);
at.ACORDO_CODIGO_ESCRITORIO = line.substring(2, 6);
at.ACORDO_NUMERO_LOTE = line.substring(7, 18);
at.ACORDO_STATUS_REGISTRO = line.substring(19, 20);
at.ACORDO_CODIGO_OPERACAO = line.substring(21, 25);
at.ACORDO_NUMERO_CONTRATO = line.substring(26, 40);
at.ACORDO_TIPO_CONTRATO = line.substring(41, 70);
at.ACORDO_AGENCIA_PLATAFORMA = line.substring(71, 74);
at.ACORDO_REGIAO_PLATAFORMA = line.substring(75, 76);
at.ACORDO_NUMERO_RECEBIMENTO = line.substring(77, 88);
at.ACORDO_DATA_CONTRATACAO = line.substring(89, 96);
at.ACORDO_DATA_VENCIMENTO_CONTRATO = line.substring(97, 104);
at.ACORDO_DATA_ATRASO_CONTRATO = line.substring(105, 112);
at.ACORDO_VALOR_CONTRATO_ATUAL = line.substring(113, 127);
at.ACORDO_VALOR_VENCIDO = line.substring(128, 142);
at.ACORDO_QUANTIDADE_PARCELAS = line.substring(143, 144);
at.ACORDO_QUANTIDADE_PARCELAS_ATRASO = line.substring(145, 146);
at.ACORDO_VALOR_CONTRATO_VENCIMENTO = line.substring(147, 161);
at.ACORDO_EMPRESA_CONTRATO = line.substring(162, 163);
at.ACORDO_DATA_ENVIO_CONTRATO = line.substring(164, 171);
at.ACORDO_DATA_LIMITE_RETORNO = line.substring(172, 179);
at.ACORDO_CODIGO_PARECER_ESCRITORIO_ANTERIOR = line.substring(180, 183);
at.ACORDO_CODIGO_PARECER_ESCRITORIO_ANTERIOR_LINHA1 = line.substring(184, 251);
at.ACORDO_CODIGO_PARECER_ESCRITORIO_ANTERIOR_LINHA2 = line.substring(252, 319);
at.ACORDO_PESSOA = line.substring(320, 320);
at.ACORDO_CGC_CPF = line.substring(321, 334);
at.ACORDO_NOME_DEVEDOR = line.substring(335, 364);
at.ACORDO_RESIDENCIAL_LOGRADOURO = line.substring(365, 394 );
at.ACORDO_RESIDENCIAL_NUMERO = line.substring(395, 399);
at.ACORDO_RESIDENCIAL_COMPLEMENTO = line.substring(400, 414);
at.ACORDO_RESIDENCIAL_BAIRRO = line.substring(415, 429);
at.ACORDO_RESIDENCIAL_CIDADE = line.substring(430, 449);
at.ACORDO_RESIDENCIAL_ESTADO = line.substring(450, 451);
at.ACORDO_RESIDENCIAL_CEP = line.substring(452, 459);
at.ACORDO_RESIDENCIAL_DDD = line.substring(460, 463);
at.ACORDO_RESIDENCIAL_TELEFONE = line.substring(464, 471);
at.ACORDO_RESIDENCIAL_RAMAL = line.substring(472, 475);
at.ACORDO_COMERCIAL_LOGRADOURO = line.substring(476, 505);
at.ACORDO_COMERCIAL_NUMERO = line.substring(506, 510);
at.ACORDO_COMERCIAL_COMPLEMENTO = line.substring(511, 525);
at.ACORDO_COMERCIAL_BAIRRO = line.substring(526, 540);
at.ACORDO_COMERCIAL_CIDADE = line.substring(541, 560);
at.ACORDO_COMERCIAL_ESTADO = line.substring(561, 562);
at.ACORDO_COMERCIAL_CEP = line.substring(563, 570);
at.ACORDO_COMERCIAL_DDD = line.substring(571, 574);
at.ACORDO_COMERCIAL_TELEFONE = line.substring(575, 582);
at.ACORDO_COMERCIAL_RAMAL = line.substring(583, 586);
at.ACORDO_AVALISTA1_PESSOA = line.substring(587, 587);
at.ACORDO_AVALISTA1_CPF_CGC = line.substring(588, 601);
at.ACORDO_AVALISTA1_NOME = line.substring(602, 631);
at.ACORDO_AVALISTA1_LOGRADOURO = line.substring(632, 661);
at.ACORDO_AVALISTA1_NUMERO = line.substring(662, 666);
at.ACORDO_AVALISTA1_COMPLEMENTO = line.substring(667, 681);
at.ACORDO_AVALISTA1_BAIRRO = line.substring(682, 696);
at.ACORDO_AVALISTA1_CIDADE = line.substring(697, 716);
at.ACORDO_AVALISTA1_ESTADO = line.substring(717, 718);
at.ACORDO_AVALISTA1_CEP = line.substring(719, 726);
at.ACORDO_AVALISTA1_DDD = line.substring(727, 730);
at.ACORDO_AVALISTA1_TELEFONE = line.substring(731, 739);
at.ACORDO_AVALISTA1_RAMAL = line.substring(739, 742);
at.ACORDO_AVALISTA2_PESSOA = line.substring(743, 743);
at.ACORDO_AVALISTA2_CPF_CGC = line.substring(744, 757);
at.ACORDO_AVALISTA2_NOME = line.substring(758, 787);
at.ACORDO_AVALISTA2_LOGRADOURO = line.substring(788, 817);
at.ACORDO_AVALISTA2_NUMERO = line.substring(818, 822);
at.ACORDO_AVALISTA2_COMPLEMENTO = line.substring(823, 837);
at.ACORDO_AVALISTA2_BAIRRO = line.substring(838, 852);
at.ACORDO_AVALISTA2_CIDADE = line.substring(853, 872);
at.ACORDO_AVALISTA2_ESTADO = line.substring(873, 874);
at.ACORDO_AVALISTA2_CEP = line.substring(875, 882);
at.ACORDO_AVALISTA2_DDD = line.substring(883, 886);
at.ACORDO_AVALISTA2_TELEFONE = line.substring(887, 894);
at.ACORDO_AVALISTA2_RAMAL = line.substring(895, 898);
at.ACORDO_FILIAL = line.substring(899, 903);
at.ACORDO_VALOR_ENCARGOS = line.substring(904, 918);
at.ACORDO_NUMERO_PARCELA = line.substring(919, 921);
at.ACORDO_PORTE_EMPRESA = line.substring(922, 924);
at.ACORDO_CODIGO_ESTRATEGIA = line.substring(925, 926);
at.ACORDO_TARIFA_COBRANCA = line.substring(927, 933);
at.ACORDO_NUMERO_COBRANCA = line.substring(934, 935);
at.ACORDO_CODIGO_SEGURADOR = line.substring(936, 938);
at.ACORDO_CODIGO_OPER_FINAUST = line.substring(939, 942);
at.ACORDO_CODIGO_CONTRATO_FINAUST = line.substring(943, 954);
at.ACORDO_CAMPANHA_COD_SEGMENTO = line.substring(955, 956);
at.ACORDO_CAMPANHA_VALOR_DESCONTO_VISTA = line.substring(957, 971);
at.ACORDO_CAMPANHA_VALOR_CONGELADO = line.substring(972, 986);
at.ACORDO_CAMPANHA_LOCAL_COBRANCA = line.substring(987, 988);
at.ACORDO_CAMPANHA_EMPRESA_CONGE_ITAU = line.substring(989, 990);
at.ACORDO_CAMPANHA_VALOR_JUROS_MORA_PARCELA = line.substring(991, 1005);
at.ACORDO_CAMPANHA_VALOR_MULTA_PARCELA = line.substring(1006, 1020);
at.ACORDO_CAMPANHA_PLANO = line.substring(1021, 1023);
at.ACORDO_CAMPANHA_TAXA_JUROS_NOMINAL = line.substring(1024, 1028);
at.ACORDO_CAMPANHA_TAXA_JUROS_EFETIVA = line.substring(1029, 1033);
at.ACORDO_CAMPANHA_RESPONSABILIDADE_SALDO = line.substring(1034, 1034);
at.ACORDO_CAMPANHA_PRAZO_CONTRATO_FINANCIAMENTO = line.substring(1035, 1037);
at.ACORDO_CAMPANHA_ESTRATEGIA_PROC_JURIDICO = line.substring(1038, 1040);
at.ACORDO_CAMPANHA_CODIGO_CAMPANHA = line.substring(1041, 1045);
at.ACORDO_CAMPANHA_PERCENTUAL_DESC_VISTA = line.substring(1046, 1050);
at.ACORDO_CAMPANHA_QUANTIDADE_PARCIAL_FAIXA_INICIAL1 = line.substring(1051, 1053);
at.ACORDO_CAMPANHA_QUANTIDADE_PARCIAL_FAIXA_FINAL1 = line.substring(1054, 1056);
at.ACORDO_CAMPANHA_PERCENTUAL_MAX_DESCONTOS1 = line.substring(1057, 1061);
at.ACORDO_CAMPANHA_PERCENTUAL_MIN_ENTRADA1 = line.substring(1062, 1066);
at.ACORDO_CAMPANHA_QUANTIDADE_PARCIAL_FAIXA_INICIAL2 = line.substring(1067, 1069);
at.ACORDO_CAMPANHA_QUANTIDADE_PARCIAL_FAIXA_FINAL2 = line.substring(1070, 1072);
at.ACORDO_CAMPANHA_PERCENTUAL_MAX_DESCONTO2 = line.substring(1073, 1077);
at.ACORDO_CAMPANHA_PERCENTUAL_MIN_ENTRADA2 = line.substring(1078, 1082);
at.ACORDO_CAMPANHA_QUANTIDADE_PARCIAL_FAIXA_INICIAL3 = line.substring(1083, 1085);
at.ACORDO_CAMPANHA_QUANTIDADE_PARCIAL_FAIXA_FINAL3 = line.substring(1086, 1088);
at.ACORDO_CAMPANHA_PERCENTUAL_MAX_DESCONTOS3 = line.substring(1089, 1093);
at.ACORDO_CAMPANHA_PERCENTUAL_MIN_ENTRADA3 = line.substring(1094, 1098);
at.ACORDO_CAMPANHA_SUSLIM = line.substring(1099, 1101);
at.ACORDO_CAMPANHA_IDSTG1 = line.substring(1102, 1104);
at.ACORDO_CAMPANHA_DTATICOB = line.substring(1105, 1109);
at.ACORDO_CAMPANHA_NRCARTAO = line.substring(1110, 1114);
at.ACORDO_CAMPANHA_CDCTACND = line.substring(1115, 1117);
at.ACORDO_CAMPANHA_CARTEIRA = line.substring(1118, 1120);
at.ACORDO_CAMPANHA_VLACORDO = line.substring(1121, 1125);
at.ACORDO_CAMPANHA_CDOCOBRA = line.substring(1126, 1130);
at.ACORDO_CAMPANHA_CATEGV = line.substring(1131, 1131);
//dados acordos
at.DADOS_ID_DADOS = line.substring(0, 0);
at.DADOS_TIPO_REGISTRO = line.substring(0, 0);
at.DADOS_CODIGO_ESCRITORIO = line.substring(0, 0);
at.DADOS_NUMERO_LOTE = line.substring(0, 0);
at.DADOS_STATUS_REGISTRO = line.substring(0, 0);
at.DADOS_CODIGO_OPERACAO = line.substring(0, 0);
at.DADOS_NUMERO_CONTRATO = line.substring(0, 0);
at.DADOS_TIPO_CONTRATO = line.substring(0, 0);
at.DADOS_AGENCIA_PLATAFORMA = line.substring(0, 0);
at.DADOS_REGIAO_PLATAFORMA = line.substring(0, 0);
at.DADOS_NUMERO_RECEBIMENTO = line.substring(0, 0);
at.DADOS_DATA_CONTRATACAO = line.substring(0, 0);
at.DADOS_DATA_VENCIMENTO_FINAL_CONTRATO = line.substring(0, 0);
at.DADOS_DATA_ATRASO = line.substring(0, 0);
at.DADOS_DATA_ATRASO_CONTRATO = line.substring(0, 0);
at.DADOS_DATA_ATRASO_PARCELA = line.substring(0, 0);
at.DADOS_CPF_CNPJ = line.substring(0, 0);
at.DADOS_NOME_DEVEDOR = line.substring(0, 0);
at.DADOS_LOGRADOURO = line.substring(0, 0);
at.DADOS_NUMERO = line.substring(0, 0);
at.DADOS_COMPLEMENTO = line.substring(0, 0);
at.DADOS_BAIRRO = line.substring(0, 0);
at.DADOS_CIDADE = line.substring(0, 0);
at.DADOS_ESTADO = line.substring(0, 0);
at.DADOS_CEP = line.substring(0, 0);
at.DADOS_DDD = line.substring(0, 0);
at.DADOS_TELEFONE = line.substring(0, 0);
at.DADOS_RAMAL = line.substring(0, 0);
at.DADOS_ESPACO_LIVRE = line.substring(0, 0);
at.ACORDO_ID_DADOS = line.substring(0, 0);
System.out.print(line.substring(0, 1) + " - ");
System.out.println(line.substring(0, 550));
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
}
[/code]
Classe Conexao
package importaTxt;
import java.sql.*;
public class Conexao {
private static Conexao instancia;
private String servidor = "localhost";
private String nomeBanco = "contratos";
private String usuario = "root";
private String senha = "";
public static Conexao get() throws Exception {
try {
if (instancia == null){
instancia = new Conexao();
}
return instancia;
} catch(Exception e) {
throw new Exception("Ocorreu um erro ao conectar com o banco de dados");
}
}
public Conexao() throws Exception {
Class.forName("com.mysql.jdbc.Driver").newInstance();
DriverManager.getConnection("jdbc:mysql://"+servidor+"/"+nomeBanco, usuario, senha);
}
}
Classe AtributoDAO
package importaTxt;
import java.sql.PreparedStatement;
import java.sql.Connection;
public class AtributoDAO {
private Connection conn;
public void insert(classeAtributos dados) throws Exception{
conn = null;
PreparedStatement stmt = conn.prepareStatement("insert into carga_header "
+ "(HEADER_ID_DADOS, "
+ "HEADER_TIPO_REGISTRO, HEADER_COD_ESCRITORIO, "
+ "HEADER_DATA_LOTE, HEADER_HORA_LOTE,"
+ "HEADER_AGENCIA, HEADER_ESPACO1,"
+ "HEADER_CONTA_CORRENTE, HEADER_ESPACO2,"
+ "HEADER_NUMERO_SEQUENCIAL, HEADER_ESPACO3,"
+ "HEADER_ID_ARQUIVO, HEADER_TIPO_COBRANCA,"
+ "HEADER_ESPACO_LIVRE, TRAILLER_TIPO_REGISTRO,"
+ "TRAILLER_CODIGO_ESCRITORIO, TRAILLER_DATA_LOTE, "
+ "TRAILLER_HORA_LOTE, TRAILLER_AGENCIA,"
+ "TRAILLER_ESPACO, TRAILLER_CONTA_CORRENTE,"
+ "TRAILLER_QUANTIDADE_REGISTROS, TRAILLER_ESPACO_LIVRE) values "
+ "(Values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
stmt.setString(1, dados.getHEADER_TIPO_REGISTRO());
stmt.setString(2, dados.getHEADER_COD_ESCRITORIO());
stmt.setString(3, dados.getHEADER_DATA_LOTE());
stmt.setString(4, dados.getHEADER_HORA_LOTE());
stmt.setString(5, dados.getHEADER_AGENCIA());
stmt.setString(6, dados.getHEADER_ESPACO1());
stmt.setString(7, dados.getHEADER_CONTA_CORRENTE());
stmt.setString(8, dados.getHEADER_ESPACO2());
stmt.setString(9, dados.getHEADER_NUMERO_SEQUENCIAL());
stmt.setString(10, dados.getHEADER_ESPACO3());
stmt.setString(11, dados.getHEADER_ID_ARQUIVO());
stmt.setString(12, dados.getHEADER_TIPO_COBRANCA());
stmt.setString(13, dados.getHEADER_ESPACO_LIVRE());
stmt.setString(14, dados.getTRAILLER_TIPO_REGISTRO());
stmt.setString(15, dados.getTRAILLER_CODIGO_ESCRITORIO());
stmt.setString(16, dados.getTRAILLER_DATA_LOTE());
stmt.setString(17, dados.getTRAILLER_HORA_LOTE());
stmt.setString(18, dados.getTRAILLER_AGENCIA());
stmt.setString(19, dados.getTRAILLER_ESPACO());
stmt.setString(20, dados.getTRAILLER_CONTA_CORRENTE());
stmt.setString(21, dados.getTRAILLER_QUANTIDADE_REGISTROS());
stmt.setString(22, dados.getTRAILLER_ESPACO_LIVRE());
}
public static void main(String[] args) throws Exception {
ReadTxt Principal = new ReadTxt();
Principal.ler();
new Conexao();
Conexao.get();
new AtributoDAO();
}
}
Existe mais uma classe que são os GETTERS E SETTERS eu não postei aqui, pois, é muito grande mas caso precise eu coloco.
Desde já eu agradeço.