• 0
Sign in to follow this  
edsouzza

Converter String em data.sql.date

Question

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(umMetodo.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 
    { 
    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;
    }

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this