Java gerando PDF

Boa tarde!

Alguem pode me ajudar neste seguinte erro por favor.

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
String nomediretorio = null;
String nomepasta = “ClientePF”; // Informe o nome da pasta que armazenará o relatório
String separador = java.io.File.separator;
try {
nomediretorio = “C:/Imobiliaria” + separador + nomepasta;
if (!new File(nomediretorio).exists()) {
(new File(nomediretorio)).mkdir();
}
gerarDocumento(txtID_Cliente.getText());
} catch (Exception e) {
e.printStackTrace();
}
}
public void gerarDocumento(String id) {
Document doc = new Document(PageSize.A4, 41.5f, 41.5f, 55.2f, 55.2f);
try {
List lista = new ArrayList<>();
lista = clientePFDAO.ClientePF_PDF(id);

        PdfWriter.getInstance(doc, new FileOutputStream("C:/Imobiliaria/ClientePF/Ficha" + ".pdf"));
        doc.open();

        Paragraph titulo1 = new Paragraph("Ficha de Cadastro", FontFactory.getFont(FontFactory.TIMES_ROMAN,18,Font.BOLD));
        titulo1.setAlignment(Element.ALIGN_CENTER);
        titulo1.setSpacingAfter(10);
        doc.add(titulo1);
        
        doc.add( new Paragraph(""));

        for (ClientePF clientePF : lista) {
        Chunk nome = new Chunk("Nome: ", FontFactory.getFont(FontFactory.TIMES_ROMAN,10,Font.BOLD));
        doc.add(nome);
        Chunk lnome = new Chunk(clientePF.getNome(), FontFactory.getFont(FontFactory.TIMES_ROMAN,10,Font.NORMAL));
        doc.add(lnome);           
        }
        doc.close();

        JOptionPane.showMessageDialog(null, "Relatório salvo com sucesso");
        String caminho = "C:/Imobiliaria/ClientePF/Ficha.pdf";
        Desktop.getDesktop().open(new File(caminho));
    } catch (DocumentException e) {
    } catch (IOException exx) {
        JOptionPane.showMessageDialog(null, "Documento de Requisitos aberto. Feche para gerar um novo.");
    }
}

public List<ClientePF> ClientePF_PDF(String pesquisa) {

    List<ClientePF> listClientePF;
    listClientePF = new ArrayList<>();
    ResultSet rs = null;
    
    
    try{
        
    sql = "select * from clientePF WHERE id_cliente = ?";
    pst = con.prepareStatement(sql);
    pst.setString(1, pesquisa);
    rs = pst.executeQuery();
    
    while (rs.next()) {
       listClientePF.add(new ClientePF(rs.getInt("id_cliente"), rs.getString("nome"), rs.getString("cpf")));
    }
    }catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao iniciar lista"+ex);
    }finally{
        Conexao.closeConnection(con, pst, rs);
    }
    
    return listClientePF;
}

No erro tá falando que a operação não pode ser feita com a conexão fechada. No seu código não vi você abrindo a conexão, só fechando

em que parte do codigo deve abrir esta conexão

Antes de querer fazer um acesso ao banco

1 curtida

Vlww
estava executando a conexão na class dao

:+1:t2:
Qualquer estamos ai.
Abraço

1 curtida