我可以使用jooq为jasper报告创建查询吗?
我的意思是像这样的查询
select something from table where field=$P{someparameter}
问题是生成的sql中的$P{someparameter}
。
要清楚,我只需要生成的sql查询。
如果您想包含一些特定于供应商的SQL表达式,您总是可以求助于jOOQ所称的"纯SQL"。在你的情况下,我猜以下可能对你足够了:
Select<?> select =
DSL.using(configuration)
.select(TABLE.SOMETHING)
.from(TABLE)
.where(TABLE.FIELD.eq(DSL.field("$P{{someparameter}}", TABLE.FIELD.getDataType())));
请注意,您必须"转义"大括号,因为大括号在jOOQ的纯SQL模板语言中有一个含义。
然后可以像这样提取SQL字符串:
String sql = select.getSQL();
并可能提取绑定值:
List<Object> bindings = select.getBindValues();