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