JasperReport学习笔记8-JasperReport和Hibernate,Struts的整合
1.JasperReport与Hibernate的整合
更改JRXML文件
queryString标签里面加一个属性language="hql",然后里面就不用SQL语句了,写HQL
<queryString language="hql"> <![CDATA[from Aircraft aircraft where country = $P{countryCode} order by aircraft.id]]> </queryString>
JRXML文件里面的field是HQL语言查出来的字段
Hibernate配置文件和DOJO类配置文件都一样,不做更改,而在业务LOGIC上有小的改动
//输出流 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
相关推荐
solarspot 2020-07-28
houmenghu 2020-11-17
思君夜未眠 2020-08-25
阳光之吻 2020-08-03
mbcsdn 2020-06-05
我心似明月 2020-11-09
oraclemch 2020-11-06
ltd00 2020-09-12
康慧欣 2020-09-10
waveclouds 2020-09-04
蓝色深海 2020-09-15
jincheng 2020-09-01
取个好名字真难 2020-08-06
歆萌 2020-08-03
婷婷小屋 2020-07-28
MLXY 2020-07-26
dxbjfu0 2020-07-26
songbinxu 2020-07-19