如何设定参数,使其能放到 jasperReport 的 queryString 的 where中

laorer 2009-09-25 02:30:23

需要完成的功能是 select * from tb where id in ($P{ids});
请问如何设定这个参数?
例如 ids = 1, 2, 3
那么将会如下查询 select * from tb where id in (1, 2, 3)

如果把 ids 设为 string 是不行的,如果设为 object也会报错
...全文
135 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
laorer 2009-09-25
  • 打赏
  • 举报
回复
http://blog.anorakgirl.co.uk/?cat=4

$X{IN, <column>, <param>}
搞定了……
谢谢各位
panzhaojl 2009-09-25
  • 打赏
  • 举报
回复
SQL语句里面转型啦。。有转型的函数
cseu 2009-09-25
  • 打赏
  • 举报
回复
我曾经做过报表,我记得有这么一个功能,语法应该跟$P{ids}不太一样,就是把传递的参数当作sql语句的一部分来解析而不仅仅是普通的参数。我不能肯定jasperreport是否有这个语法,楼主可以去查一下。

如果ids是通过另一个查询获得的话,可以把2句查询并在一个sql里,这样就避免了这个问题。
一洽客服系统 2009-09-25
  • 打赏
  • 举报
回复
没用过这个 我想和ibatis之类的差不多吧 也就是正则替换表达式 String 的话会有两个引号 肯定就不对了 如果是object的话 判断肯定是 instanceof String 照样报错 我猜肯定会有其他的类型 查下API哈
APOLLO_TS 2009-09-25
  • 打赏
  • 举报
回复
我基本不做报表,不过要是我的话:

重新置换整个查询串,因为百川归海还是字符串接口呀。
queryString=${p}

也可
in(subQuery)



其次也可用HQL

它支持(:List<T>)正好对应in : List<Integer>

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧