0

SQL クエリに基づいてレポートを生成する Web アプリケーションがあります。これらの SQL クエリには、Jasper Report パラメーター (つまり、$P{Param}) があります。

私の Java コードでは、PreparedStatement を使用してクエリを実行し、結果セットを返しています。この結果セットを使用して JRResultSetDataSource に変更し、JasperFillManager.fillReport(JasperReport, parameters, dataSource) に渡します。

接続ではなくデータ ソースを使用する理由は、PreparedStatement で setQueryTimeout を使用できるようにするためです。

私の問題は、クエリのパラメーターにパラメーター マップの値を入力する方法が必要なことです。これを行うための組み込みの方法はありますか?

元。

rawSqlString = "SELECT * FROM TABLE WHERE ROW1 = $P{Param}";
filledSqlString = somefunction(sqlString);
ResultSet rs = sqlStatement.executeQuery(filledSqlString);

$P{Param} があるため、「rawSqlString」は使用できません。

あるいは、JasperFillManager に渡すことができる未入力の SQL クエリを単純に格納するタイプのデータソースはありますか?

通常、JasperFillManager はこれを処理しますが、クエリをタイムアウトさせたいので、setQueryTimeout を使用し、何らかの方法でこれを Jasper が処理できる形式に変換する必要があります。

4

0 に答える 0