Jooq用于创建jasper报告查询

时间:2015-05-23 07:10:57

标签: java sql jasper-reports jooq

我可以使用jooq为jasper报告创建查询吗?

我的意思是像这样查询

select something from table where field=$P{someparameter}

问题是生成的sql中的$P{someparameter}

要明确我只需要生成的sql查询。

1 个答案:

答案 0 :(得分:1)

如果您希望包含某些特定于供应商的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())));

请注意,您必须&#34;逃避&#34;花括号,因为花括号在jOOQ的纯SQL模板语言中有意义。

然后您可以像这样提取SQL字符串:

String sql = select.getSQL();

也可能提取绑定值:

List<Object> bindings = select.getBindValues();