使用 flyway 占位符生成 sql 语句
Generate sql statements with flyway placeholders
我试图将一些 sql 插入语句保存到文件中以用于测试。
我想为此使用 flyway placeholders,但找不到。
Java中的一些示例:
var sqlTXT = sql.insertInto(table("TBLNAME"))
.set(field("strCol"), field("strVal").toString())
.set(field("placeHolderCol"), field(inline("${flyway:user}")))
.getSQL(ParamType.INLINED);
这将生成 SQL 如下字符串:
insert into TBLNAME (strCol, placeHolderCol) values ('strVal', '${flyway:user}')
我正在寻找这样的东西
insert into TBLNAME (strCol, placeHolderCol) values ('strVal', ${flyway:user})
所以flyway可以替换${flyway:user}
并插入用户名。
有什么方法可以像这样渲染 sql 还是我必须“手动”渲染?
Flyway 的占位符与任何其他“供应商特定”SQL 语法没有区别,jOOQ 不支持开箱即用,因此 plain SQL templating 有答案。
只需使用
field("${flyway:user}")
不要使用 DSL.inline()
, which is used for creating "inline values"(例如字符串文字)。
我试图将一些 sql 插入语句保存到文件中以用于测试。 我想为此使用 flyway placeholders,但找不到。
Java中的一些示例:
var sqlTXT = sql.insertInto(table("TBLNAME"))
.set(field("strCol"), field("strVal").toString())
.set(field("placeHolderCol"), field(inline("${flyway:user}")))
.getSQL(ParamType.INLINED);
这将生成 SQL 如下字符串:
insert into TBLNAME (strCol, placeHolderCol) values ('strVal', '${flyway:user}')
我正在寻找这样的东西
insert into TBLNAME (strCol, placeHolderCol) values ('strVal', ${flyway:user})
所以flyway可以替换${flyway:user}
并插入用户名。
有什么方法可以像这样渲染 sql 还是我必须“手动”渲染?
Flyway 的占位符与任何其他“供应商特定”SQL 语法没有区别,jOOQ 不支持开箱即用,因此 plain SQL templating 有答案。
只需使用
field("${flyway:user}")
不要使用 DSL.inline()
, which is used for creating "inline values"(例如字符串文字)。