您的位置:首页 > 编程语言 > ASP

JasperReport学习笔记8-JasperReport和Hibernate,Struts的整合

2012-07-17 17:05 267 查看
1.JasperReport与Hibernate的整合

更改JRXML文件

queryString标签里面加一个属性language="hql",然后里面就不用SQL语句了,写HQL

Xml代码



<queryString language="hql">

<![CDATA[from Aircraft aircraft where country = $P{countryCode}

order by aircraft.id]]>

</queryString>

JRXML文件里面的field是HQL语言查出来的字段

Hibernate配置文件和DOJO类配置文件都一样,不做更改,而在业务LOGIC上有小的改动

Java代码



//输出流

ServletOutputStream servletOutputStream =

response.getOutputStream();

//输入流

InputStream reportStream = getServlet().getServletConfig()

.getServletContext().getResourceAsStream("xxxx/xxxx.jasper");

//设格式为PDF文件

response.setContentType("application/pdf");

//Session的创建不变

SessionFactory sessionFactory = new Configuration().configure().

buildSessionFactory();

Session session = sessionFactory.openSession();

//要在Map里面放入Session

Map parameterMap = new HashMap();

parameterMap.put(JRHibernateQueryExecuterFactory.PARAMETER_

HIBERNATE_SESSION, session);

//使用JasperFileManager的这个方法,生成jprint文件,如果在WEB里面,可以不生成

//JasperFillManager.fillReportToFile("/xxx/xxxx.jasper","/xxx/xxx.jprint",session);

//输出PDF流到WEB页

JasperRunManager.runReportToPdfStream(reportStream,

servletOutputStream, parameterMap);

session.close();

servletOutputStream.flush();

servletOutputStream.close();

return mapping.getInputForward();

就是在生成jprint文件或JasperPrint对象的时候,把JRHibernateQueryExecuterFactory.PARAMETER_

HIBERNATE_SESSION里面的值设为session

转载自:/article/4401816.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: