ホームページ >データベース >mysql チュートリアル >JasperReports の SQL 'IN' 句に複数の整数値を動的に渡す方法

JasperReports の SQL 'IN' 句に複数の整数値を動的に渡す方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-22 02:55:10932ブラウズ

How to Dynamically Pass Multiple Integer Values to a SQL

JasperReports で SQL "IN" パラメータ リストを渡す

質問:

SQL の値を設定するにはどうすればよいですかJasperReport の生成中に Java で動的に「IN」述語パラメータを使用しますか?パラメーターには、実行時に決定される複数の整数値を指定できます。

回答:

JasperReports は、このシナリオを処理するために特別な変数 $X を提供します。 $X{IN,customer_role,roles} を使用すると、クエリは次のように変換されます。

select * 
from customer 
where $X{IN,customer_role,roles}

ここで、customer_role は列名、roles はパラメータ名です。

例:

Map<String, Object> parameters = new HashMap<>();
parameters.put("roles", Arrays.asList(1, 2, 3));
JasperReport jasperReport = JasperCompileManager.compileReportToFile(templatePath);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);

roles パラメータを整数の配列として設定すると、クエリはそのリストにロール ID を持つ顧客のみの結果が表示されます。

参考資料:

  • [JasperReports ドキュメント - IN オペレーター](https://community.jaspersoft. com/wiki/IN-operator)
  • [JasperReports オペレーター: $Xと $P](https://wiki.pentaho.com/display/BAD/JasperReports 演算子: $X と $P)

以上がJasperReports の SQL 'IN' 句に複数の整数値を動的に渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。