Heim >Datenbank >MySQL-Tutorial >Wie übergebe ich in JasperReports mehrere Werte an eine SQL-„IN'-Klausel?

Wie übergebe ich in JasperReports mehrere Werte an eine SQL-„IN'-Klausel?

Linda Hamilton
Linda HamiltonOriginal
2024-12-28 21:30:14854Durchsuche

How to Pass Multiple Values to an SQL

Übergabe der SQL-„IN“-Parameterliste in JasperReports

Beim Erstellen von Abfragen in JasperReports ist es häufig erforderlich, das „IN“-Prädikat von SQL zu verwenden Filtern Sie Daten basierend auf einer Werteliste. Dies kann durch die dynamische Angabe der Parameterwerte im Java-Code erreicht werden.

Stellen Sie sich das Szenario vor, in dem eine Abfrage ein „IN“-Prädikat verwendet, um Kunden basierend auf ihren Rollen zu filtern:

SELECT customer_name AS NAME, 
       id_customer   AS ID 
  FROM customer 
 WHERE customer_role IN ($P{roles})

Die Der Parameter „roles“ kann mehrere ganzzahlige Werte erhalten, die während der Berichtserstellung dynamisch ermittelt werden. Um diesen Parameter mithilfe von Java-Code festzulegen, führen Sie die folgenden Schritte aus:

JasperReports stellt eine spezielle Variable „$X“ bereit, die die Handhabung von „IN“-Parametern vereinfacht:

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

Dieser Ausdruck wird effektiv Fügen Sie die im Parameter „roles“ angegebenen Werte in das Prädikat „IN“ ein. Wie in der verlinkten Dokumentation hervorgehoben, ist dieser Ansatz mit JasperReports-Versionen 3.5 und höher kompatibel und gewährleistet die korrekte Handhabung mehrerer Parameterwerte.

Das obige ist der detaillierte Inhalt vonWie übergebe ich in JasperReports mehrere Werte an eine SQL-„IN'-Klausel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn