Pessoal o método abaixo faz a leitura de arquivo txt onde pega os campos separados por (;)
e carrega o meu objeto (objServidor) para então gravar no banco de dados.
Ocorre que o campo que recebe a datainiexercicio (01/05/2018) por exemplo não esta rodando.
Usei um metodo que formata a string e converte em data pois no objeto ela é uma data do tipo
java.sql.Date. O método é o formatarData que retorna uma data.sql.date que deixei mais abaixo para verificação de o porque
não esta aceitando esta data. Testei os outros campos e esta tudo funcionando menos a data.
O meu banco de dados é o Firebidr 2.1 e o campo data esta como Date.
Segue exemplo de uma linha o txt
MIQUEIAS DA SILVA NORE;6964443;1;56;1;6;2;03/10/2000;ATIVO;*
Quem puder ajudar agradeço.
private void ImportarTXT(){
//inicializando as variaveis dos campos a serem gravados
int totalLinhas = 0;
RetornarQdeLinhasDoTxt qdeLinhas = new RetornarQdeLinhasDoTxt();
//setando o caminho do arquivo TXT no edit do formulario apenas para mostrar o arquivo que esta sendo importado
SelecionarArquivoTexto select = new SelecionarArquivoTexto();
caminhoTXT = select.ImportarTXT();
if(caminhoTXT != null)
{
//setando o caminho do arquivo TXT na variavel caminhoTXT para pegar os valores
txtARQUIVO.setText(caminhoTXT);
totalLinhas = qdeLinhas.retornaNumLinhasDoTxt(caminhoTXT);
//JOptionPane.showMessageDialog(null, "Qde de linhas do arquivo...: "+String.valueOf(totalLinhas));
//criando uma variavel arquivo do tipo File e setando o caminho do arquivo TXT nela
File arquivo = new File(caminhoTXT);
try {
FileReader ler = new FileReader(arquivo);
BufferedReader lerBuf = new BufferedReader(ler);
linha = lerBuf.readLine();
//setando os valores no objeto do modelo
objServidor.setNome(nome);
objServidor.setRf(rf);
objServidor.setVinculo(Integer.parseInt(svinculo));
objServidor.setCargobase(Integer.parseInt(cargobase));
objServidor.setDepartamento(Integer.parseInt(departamento));
objServidor.setUnidade(Integer.parseInt(unidade));
objServidor.setTiposervidor(Integer.parseInt(tiposervidor));
//gravando no banco de dados, antes verifica se o rf já esta cadastrado e não grava se isso acontecer
if(umMetodo.duplicidadeDeCadastro("TBLSERVIDORES", "rf", rf)){
//JOptionPane.showMessageDialog(null,"O ServidorComCargo "+nome+" já esta cadastrado!");
contador = 0;
}else{
if (ctrlServidor.salvarServidor(objServidor)){
contador = 1;
}
}
//lendo a proxima linha
linha = lerBuf.readLine();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Erro ao tentar ler o arquivo!");
}
if (contador > 0){
JOptionPane.showMessageDialog(null,"Os dados foram importados com sucesso!");
}else if (contador == 0){
JOptionPane.showMessageDialog(null,"Nenhum registro foi cadastrado com sucesso!","Atenção possíveis erros de leitura ou duplicidades!",2);
}
}
contador = 0;
}
public Date formatarData(String data) throws Exception
{
if (data == null || data.equals(""))
return null;
Date date = null;
try {
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
date = (Date)(java.util.Date)formatter.parse(data);
} catch (ParseException e) {
throw e;
}
return date;
}
Pergunta
edsouzza
Pessoal o método abaixo faz a leitura de arquivo txt onde pega os campos separados por (;)
e carrega o meu objeto (objServidor) para então gravar no banco de dados.
Ocorre que o campo que recebe a datainiexercicio (01/05/2018) por exemplo não esta rodando.
Usei um metodo que formata a string e converte em data pois no objeto ela é uma data do tipo
java.sql.Date. O método é o formatarData que retorna uma data.sql.date que deixei mais abaixo para verificação de o porque
não esta aceitando esta data. Testei os outros campos e esta tudo funcionando menos a data.
O meu banco de dados é o Firebidr 2.1 e o campo data esta como Date.
Segue exemplo de uma linha o txt
MIQUEIAS DA SILVA NORE;6964443;1;56;1;6;2;03/10/2000;ATIVO;*
Quem puder ajudar agradeço.
private void ImportarTXT(){
//inicializando as variaveis dos campos a serem gravados
int totalLinhas = 0;
RetornarQdeLinhasDoTxt qdeLinhas = new RetornarQdeLinhasDoTxt();
//setando o caminho do arquivo TXT no edit do formulario apenas para mostrar o arquivo que esta sendo importado
SelecionarArquivoTexto select = new SelecionarArquivoTexto();
caminhoTXT = select.ImportarTXT();
if(caminhoTXT != null)
{
//setando o caminho do arquivo TXT na variavel caminhoTXT para pegar os valores
txtARQUIVO.setText(caminhoTXT);
totalLinhas = qdeLinhas.retornaNumLinhasDoTxt(caminhoTXT);
//JOptionPane.showMessageDialog(null, "Qde de linhas do arquivo...: "+String.valueOf(totalLinhas));
//criando uma variavel arquivo do tipo File e setando o caminho do arquivo TXT nela
File arquivo = new File(caminhoTXT);
try {
FileReader ler = new FileReader(arquivo);
BufferedReader lerBuf = new BufferedReader(ler);
linha = lerBuf.readLine();
while(linha != null)
{
nome = linha.split(";")[0];
rf = linha.split(";")[1];
svinculo = linha.split(";")[2];
cargobase = linha.split(";")[3];
departamento = linha.split(";")[4];
unidade = linha.split(";")[5];
tiposervidor = linha.split(";")[6];
datainiexercicio = linha.split(";")[7];
status = linha.split(";")[8];
obs = linha.split(";")[9];
//setando os valores no objeto do modelo
objServidor.setNome(nome);
objServidor.setRf(rf);
objServidor.setVinculo(Integer.parseInt(svinculo));
objServidor.setCargobase(Integer.parseInt(cargobase));
objServidor.setDepartamento(Integer.parseInt(departamento));
objServidor.setUnidade(Integer.parseInt(unidade));
objServidor.setTiposervidor(Integer.parseInt(tiposervidor));
==========================================================================
objServidor.setDtinicioexercicio(formatarData(datainiexercicio));
==========================================================================
objServidor.setStatus(status);
objServidor.setObs("");
//gravando no banco de dados, antes verifica se o rf já esta cadastrado e não grava se isso acontecer
if(umMetodo.duplicidadeDeCadastro("TBLSERVIDORES", "rf", rf)){
//JOptionPane.showMessageDialog(null,"O ServidorComCargo "+nome+" já esta cadastrado!");
contador = 0;
}else{
if (ctrlServidor.salvarServidor(objServidor)){
contador = 1;
}
}
//lendo a proxima linha
linha = lerBuf.readLine();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Erro ao tentar ler o arquivo!");
}
if (contador > 0){
JOptionPane.showMessageDialog(null,"Os dados foram importados com sucesso!");
}else if (contador == 0){
JOptionPane.showMessageDialog(null,"Nenhum registro foi cadastrado com sucesso!","Atenção possíveis erros de leitura ou duplicidades!",2);
}
}
contador = 0;
}
public Date formatarData(String data) throws Exception
Editado por edsouzza{
if (data == null || data.equals(""))
return null;
Date date = null;
try {
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
date = (Date)(java.util.Date)formatter.parse(data);
} catch (ParseException e) {
throw e;
}
return date;
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.