Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Meluluskan Berbilang Nilai Integer Secara Dinamik kepada Klausa 'IN' SQL dalam JasperReports?

Bagaimana untuk Meluluskan Berbilang Nilai Integer Secara Dinamik kepada Klausa 'IN' SQL dalam JasperReports?

Linda Hamilton
Linda Hamiltonasal
2024-12-22 02:55:10932semak imbas

How to Dynamically Pass Multiple Integer Values to a SQL

Meluluskan Senarai Parameter SQL "IN" dalam JasperReports

Soalan:

Bagaimana saya boleh menetapkan nilai SQL Parameter predikat "IN" secara dinamik dalam Java semasa menjana JasperReport? Parameter boleh mempunyai berbilang nilai integer yang ditentukan pada masa jalan.

Jawapan:

JasperReports menyediakan pembolehubah khas, $X, untuk mengendalikan senario ini. Dengan menggunakan $X{IN,customer_role,role}, pertanyaan anda akan diterjemahkan kepada:

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

peranan pelanggan ialah nama lajur dan peranan ialah nama parameter.

Contoh :

Map<String, Object> parameters = new HashMap<>();
parameters.put("roles", Arrays.asList(1, 2, 3));
JasperReport jasperReport = JasperCompileManager.compileReportToFile(templatePath);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);

Dengan menetapkan parameter peranan sebagai tatasusunan integer, pertanyaan akan menjana hasil hanya untuk pelanggan yang mempunyai ID peranan dalam senarai itu.

Rujukan:

  • [JasperReports Documentation - IN Operator](https://community .jaspersoft.com/wiki/IN-operator)
  • [Operator JasperReports: $X dan $P](https://wiki.pentaho.com/display/BAD/JasperReports Operators: $X dan $P)

Atas ialah kandungan terperinci Bagaimana untuk Meluluskan Berbilang Nilai Integer Secara Dinamik kepada Klausa 'IN' SQL dalam JasperReports?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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