Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jasper报表在SQL查询中填充参数_Java_Sql_Jasper Reports_Datasource_Resultset - Fatal编程技术网

Java Jasper报表在SQL查询中填充参数

Java Jasper报表在SQL查询中填充参数,java,sql,jasper-reports,datasource,resultset,Java,Sql,Jasper Reports,Datasource,Resultset,我有一个基于SQL查询生成报告的web应用程序。这些SQL查询具有Jasper报告参数(即$P{Param}) 在我的Java代码中,我使用PreparedStatement执行查询并返回结果集。我使用这个结果集并将其更改为JResultSetDataSource,以传递到JasperFillManager.fillReport(JasperReport、参数、数据源) 我使用数据源而不是连接的原因是,我可以在PreparedStatement上使用setQueryTimeout 我的问题是,我

我有一个基于SQL查询生成报告的web应用程序。这些SQL查询具有Jasper报告参数(即$P{Param})

在我的Java代码中,我使用PreparedStatement执行查询并返回结果集。我使用这个结果集并将其更改为JResultSetDataSource,以传递到JasperFillManager.fillReport(JasperReport、参数、数据源)

我使用数据源而不是连接的原因是,我可以在PreparedStatement上使用setQueryTimeout

我的问题是,我需要一种用参数映射值填充查询参数的方法。有没有一种内置的方法可以做到这一点

我不能使用“rawSqlString”,因为它有$p{Param}

或者,是否有一种数据源,它只存储我可以传递给JasperFillManager的未填充SQL查询


通常情况下,JasperFillManager会处理此问题,但我希望查询超时,因此我需要使用setQueryTimeout,并以某种方式将其转换为Jasper可以处理的格式。

您希望检索哪种类型的参数?通常你应该是填充参数映射的人,所以你应该有Java语言中的信息,主要是字符串和数字,我确实可以访问参数映射,但是我想知道是否有某种方法可以使用Jasper来填充查询。
rawSqlString = "SELECT * FROM TABLE WHERE ROW1 = $P{Param}";
filledSqlString = somefunction(sqlString);
ResultSet rs = sqlStatement.executeQuery(filledSqlString);