ホームページ > データベース > mysql チュートリアル > JasperReports クエリの WHERE 句と ORDER BY 句にパラメータを渡す方法

JasperReports クエリの WHERE 句と ORDER BY 句にパラメータを渡す方法

DDD
リリース: 2025-01-18 06:37:09
オリジナル
678 人が閲覧しました

How to Pass Parameters to WHERE and ORDER BY Clauses in JasperReports Queries?

JasperReports でクエリを構築する場合、ユーザーから動的パラメータを渡す必要がある場合があります。この目的のために、パラメーター参照には $P{}$P!{} という 2 つの構文式があります。

$P{} 文法

$P{} 構文は主に、WHERE 句で入力パラメータ値を設定するために使用されます。 java.sql.PreparedStatement と同様の「スマート」な置換アルゴリズムを使用します。たとえば、java.lang.String パラメータは引用符で囲まれた値に置き換えられ、java.lang.Integer パラメータは数値に置き換えられます。

たとえば、次のパラメータを考えてみましょう:

参数名称 参数类型 参数值
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!{} 文法

$P!{} 構文は主に単純な置換に使用されます。特別な処理を行わずに、パラメータ値をそのまま置き換えます。

たとえば、次のパラメータを考えてみましょう:

参数名称 参数类型 参数值
tableName java.lang.String events
eventName java.lang.String Olympic Games

元の表現 (置換予定):

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

結果は次のようになります:

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

あなたの場合の使用法

あなたの質問によると、WHERE句とORDER BY句を動的に設定する必要があり、次の式を使用できます。

<code class="language-sql">SELECT name, phone, email
FROM company
WHERE $P!{clause} = $P{key}
ORDER BY $P!{order}</code>
ログイン後にコピー

$P{key}java.lang.String パラメーターです。 $P!{clause} 値に引用符で囲む必要がある場合は、代わりに次の式を使用できます:

<code class="language-sql">SELECT name, phone, email
FROM company
WHERE $P!{clause} = '$P!{key}'
ORDER BY $P!{order}</code>
ログイン後にコピー

以上がJasperReports クエリの WHERE 句と ORDER BY 句にパラメータを渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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