使用preparedstatement时出错

时间:2015-11-22 07:01:13

标签: java mysql servlets

当我尝试执行此语句时,我收到了错误。我创建了一个包含表名的数组mem[],每个表中有两列名为amt(float(9,2))comb(varchar(5))的列。

我在for循环中使用了这个语句:

PreparedStatement pst =con.prepareStatement("select sum(amt) from ? where comb = ?");
pst.setString(1,mem[i]);
pst.setString(2, "all");

错误:

  

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法中有错误;查看与您的MySQL服务器版本相对应的手册,以便在''akhil'附近使用正确的语法,其中第1行为comb ='all''

在akhil附近的错误描述和所有一方,它显示单引号和其他方双引号。为什么会这样显示? 究竟是什么错误?

1 个答案:

答案 0 :(得分:1)

PreparedStatement中的参数无法替换表名或列名。他们只能取代价值观。您需要为每个表单独PreparedStatement

相关问题