突然间,我意识到虽然这在 groovy 中可以正常工作,但就像预期的那样:
Sql.newInstance(connectionParams).rows("SELECT FROM ITEMS WHERE id = ?", [200])
这行不通
Sql.newInstance(connectionParams).rows("SELECT FROM ITEMS WHERE name LIKE '%?%'", ["some"])
你能得到的只有
执行失败:SELECT FROM ITEMS WHERE name LIKE '%?%' 因为:列索引超出范围:1,列数:0。
我的问题是:
- 是故意这样实现的吗?我从来不需要参数化文本搜索,所以我不确定这种行为在哪里是典型的。
- 尽管如此,我如何安全地参数化带有文本搜索的语句?