Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Salvando arquivo pdf no banco de dados

Não compreendo por que não efetua a inserção no banco de dados, desde já agradeço a ajuda.Classe DB :

        try {
        PreparedStatement ps = db.prepareStatement(
                "insert into \"Autorizacao\" ( id , tipoAutorizacao , cpf, cpfRepresentanteLegal, tipoDocumento, documentoIdentidade, codigoSolicitante, nsuAutorizacaoDigital, dataAutorizacaoDigital, horaAutorizacaoDigital, canalAutorizacaoDigital, nomeArquivoAutorizacao, docAutorizacao, nomeArquivoIdentificacao, docIdentificacao) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");

        ps.setString(1, autorizacao.getCodigo());
        ps.setString(2, autorizacao.getTipoAutorizacao());
        ps.setString(3, autorizacao.getCpf());
        ps.setString(4, autorizacao.getCpfRepresentanteLegal());
        ps.setString(5, autorizacao.getTipoDocumento());
        ps.setString(6, autorizacao.getDocumentoIdentidade());
        ps.setString(7, autorizacao.getCodigoSolicitante());


        if ( autorizacao.getTipoAutorizacao() == "2") {   // 2 - DIGITAL
            ps.setString(8, autorizacao.getNsuAutorizacaoDigital());
            ps.setDate(9, new Date(autorizacao.getDataAutorizacaoDigital().getTime())); 
            ps.setTime(10, new Time(System.currentTimeMillis()));
            ps.setString(11, autorizacao.getCanalAutorizacaoDigital());
        }else {
            ps.setString(8, null);
            ps.setDate(9, null);
            ps.setTime(10, null);
            ps.setString(11, null);
        }


        if ( autorizacao.getTipoAutorizacao() ==  "1" && autorizacao.getDocAutorizacao() != null) { 
            ps.setString(12, autorizacao.getNomeArquivoAutorizacao());
            ps.setBytes(13, autorizacao.getDocAutorizacao());

        } else {
            ps.setBytes(12, null);
            ps.setBytes(13, null);

        }


        if ( autorizacao.getTipoAutorizacao() ==  "1" && autorizacao.getDocIdentificacao() != null) { 
            ps.setString(14, autorizacao.getNomeArquivoIdentificacao());
            ps.setBytes(15, autorizacao.getDocIdentificacao());
        } else {
            ps.setBytes(14, null);
            ps.setBytes(15, null);

        }

        ps.executeUpdate();
        ps.close();


    } finally {
        DBConnection.getInstance().close(db);
    }

============================================================================================== Servlet :

    while (keys.hasNext()) {

            fileName = keys.next();
            File fName = new File(fileName);
            fileName = fName.getName();
            file = arquivos.get(fileName);


            break;
        }

        FileInputStream fi = new FileInputStream(file);
        byte[] autorizacaoBytes = new byte[fi.available()]; 
        AutorizacaoDigital aut = new AutorizacaoDigital();    
        fi.read(autorizacaoBytes);
        fileName = Util.substituiCaracter(fileName, " ", "_");
        aut.setDocAutorizacao(autorizacaoBytes);

        fi.close();

        .......

        AutorizacaoDB.insere(aut, usuario);
        ============================================================================================
1 resposta
solução!

Oie Priskaorlando, tudo bem?

Perdão pela demora!

Pelo que entendi você quer fazer a leitura dos pdfs, e colocar cada trecho dele dentro de uma tabela no banco de dados.

Dependendo do você precisa, uma abordagem mais fácil seria salvar o arquivo no diretório e guardar o caminho do arquivo dentro do banco.

Achei uma discussão no stackoverflow que mostra como faz essa abordagem, segue o link:

Espero ter ajudado!

Se precisar de qualquer outra coisa me chama :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software