【发布时间】:2013-07-16 13:38:38
【问题描述】:
我正在尝试创建一个像这样的通用UPDATE-statement,其中只有表名是固定的。
updateValueQuery = conn.prepareStatement("UPDATE TABLENAME SET (?)=(?)");
这失败了,SQLException 抱怨语法。只要我像这样指定列名:
updateValueQuery = conn.prepareStatement("UPDATE TABLENAME SET COL_NAME=(?)");
SQL 愉快地编译。有没有办法让列名也匿名?
我正在使用 Apache derby。
【问题讨论】:
-
仅通过将其构建为字符串并将其传递给 prepareStatment 方法(其中包含所有 SQL 注入问题)
-
差不多
prepareStatement("?");你自己的模板也是如此,w.r.t.列名:String.format("UPDATE TABLENAME SET %s=?", "COL_NAME") -
是的,我就是这样解决的。我希望有一种更清洁的方法,但显然没有:(
标签: sql database prepared-statement derby javadb