[英]Escape string interpolation in anorm
我想使用anorm 2.5.2將文字'${a}'
插入表中,這意味着我想執行裸SQL查詢
INSERT INTO `db`.`table` (`a`) VALUES ('${a}');
無需使用任何定理/字符串插值。 當我嘗試執行以下操作時
SQL("INSERT INTO `db`.`table` (`a`) VALUES ('${a}');").execute()
我得到anorm.Sql$MissingParameter: Missing parameter value
異常,因為它試圖在${a}
上使用anorm插值,但是范圍中沒有可用的值a
。
如何逃避主動脈/字符串插值$...
和${...}
?
您可以使${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查詢時, 在 '
包含參數是沒有意義'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.