Play框架中如何打印出填写好的Anorm SQL语句

Nar*_*nJr 5 scala playframework anorm playframework-2.4

如何打印出将要使用 Anorm 运行的 SQL 状态。

例子

SQL(s"SELECT $terms FROM $PERSON_TABLE WHERE name = {name}").on("name" -> "Bill")
Run Code Online (Sandbox Code Playgroud)

打印给了我这个

SimpleSql(anorm.SqlQuery$$anon$1@1197b8ab,Map(name -> ParameterValue(Bill)),<function1>,false)
Run Code Online (Sandbox Code Playgroud)

我想查看将在服务器上运行的确切查询,

SELECT id, name, state FROM person WHERE name = "Bill";
Run Code Online (Sandbox Code Playgroud)

我不想像这样使用插值

s"SELECT $terms FROM $PERSON_TABLE WHERE name = $name"
Run Code Online (Sandbox Code Playgroud)

我需要能够看到所有转义字符以及 (') 中包裹的内容以及 (") 中包裹的内容

使用:

播放 2.4.1-Scala

谢谢,

亚当

cch*_*tep 2

您可以使用Acolyte(我的框架)中的调试实用程序。

import acolyte.jdbc.AcolyteDSL

AcolyteDSL.debuging() { implicit con =>
  // debug any JDBC execution within

  SQL"SELECT * FROM Test WHERE id = $id"
  // Will print the stmt prepared for
}
Run Code Online (Sandbox Code Playgroud)