我想使用anorm 2.5.2将文字'${a}'
插入表中,这意味着我想执行裸SQL查询
INSERT INTO `db`.`table` (`a`) VALUES ('${a}');
不使用任何anorm / string插值。当我尝试执行以下操作时
SQL("INSERT INTO `db`.`table` (`a`) VALUES ('${a}');").execute()
我收到anorm.Sql$MissingParameter: Missing parameter value
个异常,因为它尝试在${a}
上使用anorm插值,但范围内没有值a
。
如何转义anorm / string插值$...
和${...}
?
答案 0 :(得分:0)
您可以使${a}
参数的值,即
SQL("""INSERT INTO db.table (a) VALUES ({x})""").on("x" -> s"$${a}")
(s"$${a}"
是在没有收到有关可能缺少插补器的警告的情况下编写"${a}"
的方法。
同样可以写成
val lit = s"$${a}"
SQL"""INSERT INTO db.table (a) VALUES ($lit)"""
以下可能有效,但我不确定:
SQL"INSERT INTO db.table (a) VALUES ('$${a}')"
也许值得问一下它是故意行为还是一个错误:在谈论参数化SQL查询时,在 '
内部有一个参数是没有意义的。