java - 将参数传递给 StringTemplate 函数
问题描述
假设我有
@SqlQuery("SELECT :someField FROM myTable")
String fetchField(@Bind("someField") final String columnName);
我想将它移动到一个 stg 文件中UseStringTemplate3StatementLocator
,然后从那里使用组文件和模板。我需要将此参数传递给另一个函数,即
@SqlQuery
String fetchField(@Bind("someField") final String columnName);
// in the stg file
fetchField() ::= <<
<someOtherMethod(:someField)> <! I need to pass someField to this other function ->
>>
someOtherMethod(columnName) ::= <<
... All the query is generated here
>>
这是行不通的。我该怎么做呢?
解决方案
您需要使用@Define
注解为StringTemplate4提供属性,然后将其用作<someField>
. 但是,通过这种方式,编写的查询将对 SQL 注入开放
推荐阅读
- python - 将 str 解释为十六进制字符序列
- javascript - ValidationError:无效的选项对象。CSS Loader 已使用与 API 架构不匹配的选项对象进行初始化
- reactjs - 开玩笑测试无法使用 create react app 和 craco 导入铯
- winforms - 将所有 DLL 和资源组合到一个用于 Winforms 程序的 EXE 中?ILMerge 似乎即将退出市场?
- uikit - UIkit 拖动时可排序的鼠标位置
- json - JSON 未根据架构进行验证
- policy - Hashicorp Vault - UI 的模板策略问题
- python-3.x - Python3,scipy.optimize:将模型拟合到多个数据集
- r - R中的箱线图比较两个数据框
- jmeter-plugins - JMeter 基本图抛出空指针异常