我可以这种方式传递列名吗?

时间:2016-07-12 11:43:03

标签: java postgresql jsp

query = "UPDATE personal_details SET '" + field + "' = '" + edit + "' WHERE associate_id = '" + associate_id + "'";

这里我的表名是personal_details,我将表列名称作为变量字段中的参数及其编辑中的新值。此代码使用Java。我访问的数据库是在PostgreSQL中。

3 个答案:

答案 0 :(得分:1)

虽然您可以使用普通连接构建字符串,但建议的方法更多:

  1. 在构建字符串以优化程序速度时使用StringBuilder / StringBuffer,特别是如果在循环内连接字符串;
  2. 最推荐的方法是使用PreparedStatement并填充参数值。请参阅:http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html

答案 1 :(得分:1)

不要构建这样的查询!正如@Rory指出的那样,由于安全问题,这是不好的做法。而是使用带参数的PreparedStatement,例如:

100200

(取自mkyong

答案 2 :(得分:0)

您正在构建包含查询的字符串。数据库不知道如何构造字符串。最后,您只需传递将被解析,编译和执行的字符串。所以是的,你可以用这种方式构建查询。

您不能将列名或表名作为参数传递给查询。建议您将其他值作为参数传递给查询。