当前位置: 首页 > news >正文

一个网站怎么做appwordpress审核插件

一个网站怎么做app,wordpress审核插件,wordpress主题在那个目录,东莞整站优化公司火速公司如果您使用Java进行编程的时间足够长#xff0c;则有可能需要为业务用户生成报告。 就我而言#xff0c;我已经看到几个项目使用JasperReports库来生成PDF和其他文件格式的报告。 最近#xff0c;我荣幸地观察了Mike和他的团队使用上述报告库及其面临的挑战。 简而言之Jasp… 如果您使用Java进行编程的时间足够长则有可能需要为业务用户生成报告。 就我而言我已经看到几个项目使用JasperReports®库来生成PDF和其他文件格式的报告。 最近我荣幸地观察了Mike和他的团队使用上述报告库及其面临的挑战。 简而言之JasperReports 简而言之使用JasperReportsJR生成报告涉及三个步骤 加载已编译的报告即加载JasperReport对象 通过用数据填充报告来运行报告结果是JasperPrint对象 将填充的报告导出到文件例如使用JRPdfExporter导出到PDF 在Java代码中看起来像这样。 JasperReport compiledReport JasperCompileManager.compileReport(sample.jrxml); MapString, Object parameters ...; java.sql.Connection connection dataSource.getConnection(); try {JasperPrint filledReport JasperFillManager.fillReport(compiledReport, parameters, connection);JasperExportManager.exportReportToPdf(filledReport, report.pdf); } finally {connection.close(); } 多亏了facade类这看起来很简单。 但是外表可能是骗人的 鉴于以上代码段以及概述的三个步骤您认为哪些部分需要最多的时间和内存 听起来像面试问题。 如果您回答2填写数据那是对的 如果您回答了3那也是正确的因为3与2成正比。 恕我直言 大多数在线教程仅显示简单的部分。 就JR而言 似乎缺少对较困难和棘手的部分的讨论。 在这里与Mike的团队一起我们遇到了两个困难内存不足错误和长期运行的报告。 使这些困难特别令人难忘的是它们仅在生产过程中出现而不在开发过程中。 我希望通过共享它们将来可以避免它们。 内存不足错误 第一个挑战是报告内存不足。 在开发过程中与实际操作数据相比我们用于运行报告的测试数据将太小。 因此 为此设计 。 在我们的例子中所有报告都使用JRVirtualizer运行。 这样当达到内存中的页面/对象最大数量时它将刷新到磁盘/文件。 在此过程中我们还了解到虚拟器需要清理。 否则周围会有几个临时文件。 而且只有在报告导出到文件后 我们才能清理这些临时文件。 MapString, Object parameters ...; JRVirtualizer virtualizer new JRFileVirtualizer(100); try {parameters.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);...... filledReport JasperFillManager.fillReport(compiledReport, parameters, ...);// cannot cleanup virtualizer at this pointJasperExportManager.exportReportToPdf(filledReport, ...); } finally {virtualizer.cleanup(); } 有关更多信息请参见Virtualizer Sample – JasperReports 。 请注意当我们在运行报表时遇到内存不足的错误时JR 并不总是罪魁祸首。 有时即使在使用JR之前我们也会遇到内存不足错误。 我们看到了如何滥用JPA来加载报告的整个数据集 Query.getResultList()和TypedQuery.getResultList() 。 同样由于数据集仍然很小因此在开发期间不会显示该错误。 但是当数据集太大而无法容纳在内存中时我们会遇到内存不足错误。 我们选择避免​​使用JPA生成报告。 我猜我们只需要等待JPA 2.2的Query.getResultStream()可用即可。 我希望JPA的Query.getResultList()返回Iterable 。 这样就有可能一次映射一个实体而不是整个结果集。 现在避免加载整个数据集。 一次加载一个记录。 在此过程中我们返回了良好的JDBC。 不错JR很好地使用了ResultSet 。 长期运行的报告 第二个挑战是长期运行报告。 同样在开发过程中可能不会发生这种情况。 充其量将运行10秒钟左右的报告视为冗长。 但是有了实际的运行数据它可以运行大约5-10分钟。 当根据HTTP请求生成报告时这尤其麻烦。 如果报告可以在超时时间段内通常为60秒或最多5分钟开始写入响应输出流那么它很有可能被请求用户通常是通过浏览器接收。 但是如果填写报告需要5分钟以上的时间而导出到文件又需要8分钟那么用户将只会看到超时的HTTP请求并将其记录为错误。 听起来有点熟 请记住报告可能会运行几分钟。 因此 为此设计 。 就我们而言我们在单独的线程上启动报告。 对于通过HTTP请求触发的报告我们将以一个页面进行响应该页面包含指向所生成报告的链接。 这样可以避免超时问题。 当用户单击此链接而报告尚未完成时他/她将看到仍在生成报告。 但完成的报告时他/她就可以看到生成的报告文件。 ExecutorService executorService ...; ... executorService.submit(() - {MapString, Object parameters ...;try {...... filledReport JasperFillManager.fillReport(compiledReport, parameters, ...);JasperExportManager.exportReportToPdf(filledReport, ...);} finally {...} }); 我们还必须添加停止/取消运行报告的功能。 好东西JR有检查Thread.interrupted()代码。 因此仅中断线程将使其停止。 当然您需要编写一些测试来进行验证期望JRFillInterruptedException和ExportInterruptedException 。 在讨论过程中我们重新发现了将“监听器”添加到报告生成中的方法例如FillListener和JRExportProgressMonitor 并为用户提供一些进度信息。 我们还创建了实用程序测试类以通过反复重复给定的数据来生成大量数据。 这对于帮助团队的其他成员开发专为处理长期运行和内存不足错误而设计的JR应用程序很有用。 进一步的设计考虑 要考虑的另一件事是填写报告时需要打开和关闭所需的资源。 这可以是JDBC连接Hibernate会话JPA EntityManager或文件输入流例如CSVXML。 下图是我的设计注意事项的粗略草图。 1. Compiling- - - - - - - - - - - - - -\- - - -\ \ 2. Filling open-close \- - - -/ resource swap to file/ 3. Exporting /- - - - - - - - - - - - - -/ 我们要隔离2并定义装饰器这些装饰器将打开资源填充报告并在finally块中关闭打开的资源。 打开的资源可能取决于报表中的queryString元素如果存在。 在某些情况下如果没有queryString元素则可能无需打开资源。 queryString languagehql![CDATA[ ... ]] /queryString ... queryString languagecsv![CDATA[ ... ]] /queryString 此外我们还希望将2和3组合为一种抽象。 这种单一的抽象使您可以更轻松地进行增强装饰例如将创建的页面对象刷新为文件并在导出过程中将其加载回。 如前所述这就是JRVirtualizer所做的。 但是我们希望使用结合2和3的抽象对对象透明的设计。 致谢 目前为止就这样了。 再次感谢Mike和他的团队分享了他们的经验。 是的他是将自己应用的收入捐赠给慈善机构的那个人 。 另外还要感谢克莱尔Claire通过一次又一次重复给定数据进行测试的想法。 相关代码段可以在GitHub上找到 。 翻译自: https://www.javacodegeeks.com/2018/01/jasperreports-tricky-parts.html
http://wiki.neutronadmin.com/news/138205/

相关文章:

  • asp.net网站备份做购物商城网站
  • 咸阳网站开发公司地址量品定制
  • 沈阳网站提升排名平台建站
  • 网站开发盈利wordpress 最好的编辑器
  • cad做彩图那个网站应用好用织梦cms零基础做网站
  • dedecms做手机网站莱芜网站建设公众号建设
  • 上海平台网站建设费用免费设计logo图标生成器
  • 中国石油大学网页设计与网站建设塑胶包装东莞网站建设
  • 南京网站建设公司哪家好简易动漫网站模板
  • 宾馆酒店 网站模板网站建设服务哪家好
  • 网站建设实施过程物业公司管理系统
  • 免费软件站网站设计的国际专业流程包括
  • 网站营销活动div网站模板
  • 电脑网站打不开是什么原因造成的网站建设全网推广
  • 潍坊网站建设优化个人网站怎么维护
  • 明星个人网站设计模板南山网站建设 信科网络
  • 北洼路网站建设百度官网认证免费
  • 使用网站模板快速建站教案民治做网站公司
  • 网易企业邮箱手机端登录不上咋办怎么优化电脑系统
  • 嘉兴信息网站h5可以来做网站吗
  • 网站制作常见的问题电子商务网站经营特色分析的主要内容包括
  • 访问网站出现目录wordpress 管理员账号在哪里查询
  • 网站云空间和普通空间山西省网站建设
  • 关于申请建设网站申请报告重庆建筑公司100强
  • 做网站客户给不了素材win7 iis配置本地网站
  • 网站建设取得了购买空间网站哪个好
  • 建设工程质量协会网站俄罗斯网站建设
  • 做网站怎样实现网上支付怎么样做小程序
  • jsp网站建设作业dedecms 门户网站制作
  • 贵阳市乌当区住房与城乡建设局网站娃哈哈网络营销策划方案