本文介绍了jOOQ addConditions:在SQL中出现问号而不是值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想启动简单的代码:
SelectQuery query = dsl.select(field ("id"), field("title")).from("dict.models").getQuery();
if (modelId > 0) query.addConditions(field("model_id", SQLDataType.INTEGER).equal(modelId));
但不幸的是,在getSQL()
中我只能看到:
But infortunately in getSQL()
I can only see:
select id, title from dict.models where model_id = ?
哪里有错误?
谢谢.
推荐答案
Query.getSQL()
会生成SQL语句,就像让jOOQ执行带有绑定变量的PreparedStatement
一样.绑定变量可以通过
Query.getSQL()
generates the SQL statement as it would be generated if you let jOOQ execute a PreparedStatement
- with bind variables. The bind variables can be extracted in the right order via Query.getBindValues()
如果要将所有绑定值都内联到生成的SQL中,则可以通过jOOQ API(所有等效项)使用各种选项:
If you want to inline all bind values into the generated SQL, you have various options through the jOOQ API (all equivalent):
- 使用 与
ParamType.INLINE
- 使用
dsl.renderInlined(QueryPart)
- 在您的
StatementType.STATIC_STATEMENT
中Settings
- Using
Query.getSQL(ParamType)
withParamType.INLINE
- Using
dsl.renderInlined(QueryPart)
- Using
StatementType.STATIC_STATEMENT
in yourSettings
这篇关于jOOQ addConditions:在SQL中出现问号而不是值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!