在 jasperreport 中传递 SQL“IN”参数列表
Posted
技术标签:
【中文标题】在 jasperreport 中传递 SQL“IN”参数列表【英文标题】:passing SQL "IN" parameter list in jasperreport 【发布时间】:2011-09-07 18:14:48 【问题描述】:我正在处理 Jasper 报告,我的查询使用 SQL 'IN' 谓词。
SELECT customer_name AS NAME,
id_customer AS ID
FROM customer
WHERE customer_role IN ($Proles)
这里的角色参数可以有1个或多个整数值,会在生成jasper报告时动态决定。
谁能帮助我通过Java程序动态设置'roles'参数的值。
【问题讨论】:
【参考方案1】:Jasper Report 有一个特殊的变量 $X :
select * from customer where $XIN,customer_role,roles
应该可以。 See here 和 here。
【讨论】:
【参考方案2】:接受的答案中链接到的示例不适合我。
对我有用的替代方法是:
...
WHERE customer_role IN ($Proles)
我用过这个:
...
WHERE customer_role IN ($P!roles)
对于roles
变量,我传入一个包含一个或多个值的字符串,每个值用单引号括起来,用逗号分隔(例如,'1','2','3'
)。
参考here。
【讨论】:
虽然这会起作用,但它不会使用准备好的语句,因此应用程序可以被SQL injection attacks定位 Petter Friberg,你准备好 jasper-reports 的语句用法示例了吗?我相信接受的答案也不使用准备好的陈述。【参考方案3】:为了补充@Aaron 响应,您可以在 JasperSoft Studio 中配置一个列表参数(在您的情况下为“角色”),如下所示:
【讨论】:
以上是关于在 jasperreport 中传递 SQL“IN”参数列表的主要内容,如果未能解决你的问题,请参考以下文章