Maison > base de données > tutoriel mysql > Comment transmettre correctement les paramètres aux requêtes JasperReports en utilisant la syntaxe $P{} et $P!{} ?

Comment transmettre correctement les paramètres aux requêtes JasperReports en utilisant la syntaxe $P{} et $P!{} ?

DDD
Libérer: 2025-01-18 06:31:08
original
643 Les gens l'ont consulté

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

Paramètre de requête JasperReports passant

Dans les requêtes de base de données, il est courant de transférer dynamiquement des paramètres en fonction des entrées de l'utilisateur. Certains utilisateurs peuvent rencontrer des problèmes lors de la transmission de paramètres à l'aide de la syntaxe $P{}.

JasperReports fournit deux syntaxes pour référencer les paramètres : $P{} et $P!{}.

$P{paramName}Grammaire

$P{paramName} est principalement utilisé pour définir la valeur du paramètre d'entrée de la clause WHERE. L'algorithme de remplacement pour cette syntaxe est similaire à java.sql.PreparedStatement. Il gère intelligemment différents types de paramètres :

  • Pour les paramètres de type java.lang.String, le moteur remplace $P{parameterName} par une valeur citée.
  • Pour les paramètres de type java.lang.Integer, le moteur remplacera $P{parameterName} par une valeur numérique.

Exemple :

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

Expression originale :

<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name=$P{eventName} AND type=$P{eventType}</code>
Copier après la connexion

Résultat :

<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND type=2</code>
Copier après la connexion

$P!{paramName}Grammaire

La syntaxe

$P!{paramName} effectue une substitution simple, généralement utilisée pour remplacer la valeur exacte d'un argument.

Exemple :

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

Expression originale :

<code class="language-sql">SELECT startDate, endDate, rating FROM $P!{tableName} WHERE name='$P!{eventName}' AND channel=$P!{channel} AND type=$P!{type}</code>
Copier après la connexion

Résultat :

<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND channel='BBC' AND type=sport</code>
Copier après la connexion

Postuler à la question

Pour la requête donnée, les expressions suivantes peuvent s'appliquer :

  • Si $P{key} est java.lang.String tapez le paramètre :
<code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}</code>
Copier après la connexion
  • Si $P{key} est un paramètre de type non-chaîne :
<code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P!{key} ORDER BY $P!{order}</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal