Galera minha duvida é o seguinte eu uso spring 3 hibernate 3 e jasper 4,
para gera relatorio estou usando assim
public void gerarRelatorio() throws JRException, IOException {
try {
con = new Conexao().getConnection(); // Faz a conexão
} catch (SQLException ex) {
Logger.getLogger(AnexarController.class.getName()).log(Level.SEVERE, null, ex);
}
// Na variavel pathJasper ficara o caminho do diretório para
// os relatórios compilados (.jasper)
String pathJasper = FacesContext.getCurrentInstance().getExternalContext().getRealPath(
"/WEB-INF/classes/br/com/sisacad/relatorio/")
+ "/";
// A variavel path armazena o caminho real para o contexto
// isso é util pois o seu web container pode estar instalado em lugares diferentes
String cam = FacesContext.getCurrentInstance().getExternalContext()
.getRealPath("../../../../public_html/download/escola/logoBack.jpg");
System.out.println("CAM" + cam);
ImageIcon gto = new ImageIcon(cam);
HashedMap parametro = new HashedMap();
parametro.put("logoBack", gto.getImage());
String path = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/system/temp");
JasperPrint jp = JasperFillManager.fillReport(pathJasper + "AlunoCursando.jasper", parametro, con);
// String file = String.valueOf(GregorianCalendar.getInstance().getTimeInMillis()) + String.valueOf(GregorianCalendar.getInstance().hashCode());
JasperExportManager.exportReportToPdfFile(jp, path + "/AlunoCursando.pdf");
FacesContext.getCurrentInstance().getExternalContext().redirect("system/temp/AlunoCursando.pdf");
// JasperViewer jrv = new JasperViewer(jp);
// jrv.setVisible(true);
new Conexao().conexaoClose(con);
}
o que eu quero focar é o seguinte, no spring ja tenho um dataSource para a conexao com o banco, por nao saber como integrar o jasper ao spring, o q eu faço. Crio uma conexao passo como parametro no ob JasperPrint e depois fecho a conexao no fim do metodo.
minha duvida é? gerar o relatorio assim é um erro? prejudica no desempenho da minha aplicaçao?