ホームページ > データベース > mysql チュートリアル > $P{} および $P!{} 構文を使用してパラメータを JasperReports クエリに適切に渡す方法

$P{} および $P!{} 構文を使用してパラメータを JasperReports クエリに適切に渡す方法

DDD
リリース: 2025-01-18 06:31:08
オリジナル
643 人が閲覧しました

How to Properly Pass Parameters to JasperReports Queries Using $P{} and $P!{} Syntax?

JasperReports クエリパラメータの受け渡し

データベース クエリでは、ユーザー入力に基づいてパラメータを動的に転送することが一般的な要件です。一部のユーザーは、$P{} 構文を使用してパラメーターを渡すときに問題が発生する可能性があります。

JasperReports には、パラメーターを参照するための 2 つの構文、$P{}$P!{} が用意されています。

$P{paramName} 文法

$P{paramName} は主に WHERE 句の入力パラメータ値を設定するために使用されます。この構文の置換アルゴリズムは java.sql.PreparedStatement に似ています。さまざまなパラメータ タイプをインテリジェントに処理します:

  • java.lang.String 型パラメーターの場合、エンジンは $P{parameterName} を引用符付きの値に置き換えます。
  • java.lang.Integer 型パラメーターの場合、エンジンは $P{parameterName} を数値に置き換えます。

例:

参数名称 参数类型 参数值
eventName java.lang.String Olympic Games
eventType java.lang.Integer 2

元の表現:

<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name=$P{eventName} AND type=$P{eventType}</code>
ログイン後にコピー

結果:

<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND type=2</code>
ログイン後にコピー

$P!{paramName} 文法

$P!{paramName} 構文は単純な置換を実行し、通常は引数の正確な値を置換するために使用されます。

例:

参数名称 参数类型 参数值
tableName java.lang.String events
eventName java.lang.String Olympic Games
channel java.lang.String 'BBC'
type java.lang.String sport

元の表現:

<code class="language-sql">SELECT startDate, endDate, rating FROM $P!{tableName} WHERE name='$P!{eventName}' AND channel=$P!{channel} AND type=$P!{type}</code>
ログイン後にコピー

結果:

<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND channel='BBC' AND type=sport</code>
ログイン後にコピー

質問に応募する

指定されたクエリには、次の式が適用される場合があります:

  • $P{key}java.lang.String 型パラメータの場合:
<code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}</code>
ログイン後にコピー
  • $P{key} が非文字列型パラメータの場合:
<code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P!{key} ORDER BY $P!{order}</code>
ログイン後にコピー

以上が$P{} および $P!{} 構文を使用してパラメータを JasperReports クエリに適切に渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート