在ScalarikeJDBC中构造SQL查询时,SQLSyntax内的变量引用
我有一个来自请求的搜索参数,它是一个类似“abc”的字符串。现在我想构建一个sqls,并在sqls中使用这个变量引用。我尝试了以下方法:在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
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}%””
?所有这些都可以正常工作,请指定版本和错误。