我试图为特定的表创建通用的计数器更新方法。
我的表有很多列只是计数器,在我的应用程序中我需要增加/减少这些计数器。
我试图创建一个这样的方法:
private def updateCounter(column: String, id: Int, incr: Int)(implicit session: Session): Unit = {
sqlu"update table1 set $column = $column + $incr where id=$id".first
}
然后我会创建一个方法来调用它(我不想在这个Dao类之外公开这个方法)。
我收到此错误:
[PSQLException: ERROR: syntax error at or near "$1" Position: 20]
答案 0 :(得分:10)
尝试将$column
替换为#$column
。 $
is used for bind variables不适用于列名或表名等标识符,而#$
is a mere string replacement like the s""
string interpolation。
还要确保您的列变量不易受SQL注入攻击。