Jump to content
edsouzza

Converter String em data.sql.date

Recommended Posts

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.