在ScalarikeJDBC中构造SQL查询时,SQLSyntax内的变量引用

在ScalarikeJDBC中构造SQL查询时,SQLSyntax内的变量引用,scala,Scala,我有一个来自请求的搜索参数,它是一个类似“abc”的字符串。现在我想构建一个sqls,并在sqls中使用这个变量引用。我尝试了以下方法: val searchValue = "abc" sqls"column_name ILIKE '%$searchValue%'" 但这不起作用。然后我尝试了以下不安全的方法 val searchValueSqls = SQLSyntax.createUnsafely(searchValue) sqls"column_name ILIKE '%$s

我有一个来自请求的搜索参数,它是一个类似“abc”的字符串。现在我想构建一个sqls,并在sqls中使用这个变量引用。我尝试了以下方法:

val searchValue = "abc"    

sqls"column_name ILIKE '%$searchValue%'"
但这不起作用。然后我尝试了以下不安全的方法

val searchValueSqls = SQLSyntax.createUnsafely(searchValue)

sqls"column_name ILIKE '%$searchValueSqls%'"
这很好,但文档中说“注意SQL注入漏洞”。

是否有任何安全的方法来实现SQL内部的变量引用?

另一种方法是,我们可以使用sqls.like来构建like操作

但是是sqls.like不区分大小写吗?因为ILIKE对红移不区分大小写。

我们可以使用

val escapedValue = SQLSyntax.createUnsafely(LikeConditionEscapeUtil.escape(searchValue))
sqls"column_name ILIKE '$escapedValue'"
可能
sqls“column_name i类似“%${searchValue}%””
?所有这些都可以正常工作,请指定版本和错误。