gpt4 book ai didi

java - DynamicReports 找不到查询参数错误

转载 作者:行者123 更新时间:2023-12-02 09:09:00 25 4
gpt4 key购买 nike

我正在尝试使用 DynamicReports 库生成报告。数据源基于具有带参数的 where 子句的 SQL 查询。在下面的示例中,我设置了参数“orderNo=123456”。但是,当我运行查询时,出现如下异常。

DynamicReports 站点 databasedatasourcereport 中共享的示例没有带参数的 where 子句。请建议需要采取哪些措施来解决该问题。

异常(exception):

Query parameter not found : orderNo
at net.sf.jasperreports.engine.design.JRAbstractCompiler.verifyDesign(JRAbstractCompiler.java:280) ~[jasperreports-6.8.0.jar:6.8.0-2ed8dfabb690ff337a5797129f2cd92902b0c87b]
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:152) ~[jasperreports-6.8.0.jar:6.8.0-2ed8dfabb690ff337a5797129f2cd92902b0c87b]
at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:358) ~[jasperreports-6.8.0.jar:6.8.0-2ed8dfabb690ff337a5797129f2cd92902b0c87b]
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:618) ~[jasperreports-6.8.0.jar:6.8.0-2ed8dfabb690ff337a5797129f2cd92902b0c87b]
at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toJasperReport(JasperReportBuilder.java:291) ~[dynamicreports-core-5.1.0.jar:na]

源代码:

JasperReportBuilder jasperReportBuilder = report().columns(col.column("Order No", "orderNo", type.stringType()))
.columns(col.column("Order Amount", "orderAmount", type.bigDecimalType()))
.setQuery("select orderNo, orderAmount from orders where orderNo=$P{orderNo}",
QueryLanguage.SQL)
.setConnection(connection).setDefaultFont(stl.font(DEFAULT_FONT, false, false, 12))
.setParameter("orderNo", "123456")
.pageFooter(Components.pageXofY());
JasperPrint jp = jasperReportBuilder.toJasperPrint();

最佳答案

解决方案非常简单 - 应该声明参数。

您所需要的只是添加参数定义:

 .addParameter("orderNo", String.class)

完整代码为:

JasperReportBuilder jasperReportBuilder = report()
.columns(col.column("Order No", "orderNo", type.stringType()),
col.column("Order Amount", "orderAmount", type.bigDecimalType()))
.setQuery("SELECT orderNo, orderAmount FROM orders WHERE orderNo=$P{orderNo}",
QueryLanguage.SQL)
.setConnection(connection).setDefaultFont(stl.font(DEFAULT_FONT, false, false, 12))
.addParameter("orderNo", String.class) // Parameter declaration (of String type)
.setParameter("orderNo", "123456")
.pageFooter(Components.pageXofY())
.show();

关于java - DynamicReports 找不到查询参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59558584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com