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
697 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:

SELECT startDate, endDate, rating FROM events WHERE name=$P{eventName} AND type=$P{eventType}
Salin selepas log masuk

Hasil:

SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND type=2
Salin selepas log masuk

$P!{paramName} Tatabahasa

Sintaks

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

Contoh:

参数名称参数类型参数值
tableNamejava.lang.Stringevents
eventNamejava.lang.StringOlympic Games
channeljava.lang.String'BBC'
typejava.lang.Stringsport

Ungkapan asal:

SELECT startDate, endDate, rating FROM $P!{tableName} WHERE name='$P!{eventName}' AND channel=$P!{channel} AND type=$P!{type}
Salin selepas log masuk

Hasil:

SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND channel='BBC' AND type=sport
Salin selepas log masuk

Mohon pada soalan

Untuk pertanyaan yang diberikan, ungkapan berikut mungkin digunakan:

  • Jika $P{key} ialah java.lang.String jenis parameter:
SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}
Salin selepas log masuk
  • Jika $P{key} ialah parameter jenis bukan rentetan:
SELECT name, phone, email FROM company WHERE $P!{clause} = $P!{key} ORDER BY $P!{order}
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!

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