在Slick中打印插值SQL查询

pat*_*rit 11 scala jdbc prepared-statement slick slick-2.0

我正在尝试打印插值的Slick2 SQL语句进行调试,我得到的只是带有问号的那个

def query(name: String) = sql"SELECT MAX(age) FROM users WHERE name = $name".as[Int]
println(query("Bob").getStatement)   
Run Code Online (Sandbox Code Playgroud)

以上打印出来:

SELECT MAX(age) FROM users WHERE name = ?
Run Code Online (Sandbox Code Playgroud)

我怎样才能打印出来:

SELECT MAX(age) FROM users WHERE name = 'Bob'
Run Code Online (Sandbox Code Playgroud)

注意:这个问题与不重复

air*_*dah 5

您可能需要将以下内容添加到您的 application.conf 中

logger.scala.slick.session=DEBUG
Run Code Online (Sandbox Code Playgroud)

这应该在控制台中显示编译的查询字符串。


Ram*_*gil 3

从光滑的文档中可以看出:“您可以使用 #$ 而不是 $ 来获取直接插入到查询中的文字值”。

//note the '#'
def query(name : String) = sql"SELECT MAX(age) FROM users WHERE name = '#$name'".as[Int]
Run Code Online (Sandbox Code Playgroud)