Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Meluluskan Parameter ke Pertanyaan JasperReports Dengan Betul Menggunakan Sintaks $P{} dan $P!{}?

Bagaimana untuk Meluluskan Parameter ke Pertanyaan JasperReports Dengan Betul Menggunakan Sintaks $P{} dan $P!{}?

DDD
Lepaskan: 2025-01-18 06:31:08
asal
643 orang telah melayarinya

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

Melalui parameter pertanyaan JasperReports

Dalam pertanyaan pangkalan data, adalah keperluan biasa untuk memindahkan parameter secara dinamik berdasarkan input pengguna. Sesetengah pengguna mungkin menghadapi masalah apabila menghantar parameter menggunakan sintaks $P{}.

JasperReports menyediakan dua sintaks untuk parameter rujukan: $P{} dan $P!{}.

$P{paramName} Tatabahasa

$P{paramName} digunakan terutamanya untuk menetapkan nilai parameter input bagi klausa WHERE. Algoritma penggantian untuk sintaks ini adalah serupa dengan java.sql.PreparedStatement. Ia mengendalikan jenis parameter yang berbeza dengan bijak:

  • Untuk parameter jenis java.lang.String, enjin menggantikan $P{parameterName} dengan nilai yang disebut.
  • Untuk parameter jenis java.lang.Integer, enjin akan menggantikan $P{parameterName} dengan nilai angka.

Contoh:

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

Ungkapan asal:

<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name=$P{eventName} AND type=$P{eventType}</code>
Salin selepas log masuk

Hasil:

<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND type=2</code>
Salin selepas log masuk

$P!{paramName} Tatabahasa

Sintaks

$P!{paramName} melakukan penggantian mudah, biasanya digunakan untuk menggantikan nilai tepat argumen.

Contoh:

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

Ungkapan asal:

<code class="language-sql">SELECT startDate, endDate, rating FROM $P!{tableName} WHERE name='$P!{eventName}' AND channel=$P!{channel} AND type=$P!{type}</code>
Salin selepas log masuk

Hasil:

<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND channel='BBC' AND type=sport</code>
Salin selepas log masuk

Mohon pada soalan

Untuk pertanyaan yang diberikan, ungkapan berikut mungkin digunakan:

  • Jika $P{key} ialah java.lang.String jenis parameter:
<code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}</code>
Salin selepas log masuk
  • Jika $P{key} ialah parameter jenis bukan rentetan:
<code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P!{key} ORDER BY $P!{order}</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Meluluskan Parameter ke Pertanyaan JasperReports Dengan Betul Menggunakan Sintaks $P{} dan $P!{}?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan