使用预准备语句时出错?

时间:2015-11-22 13:33:26

标签: java mysql sql jdbc

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

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

ResultSet a = pst.executeQuery();

错误:

  

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第1行的'comb ='all'附近使用正确的语法   错误是什么?我该如何解决?   我还试过替换? with all并删除两行(String x =“all”;和pst.setString(1,x);)

2 个答案:

答案 0 :(得分:2)

FROM之后和WHERE之前添加空格:

String query = "select sum(amt) from " + table +  " where comb = ?";

答案 1 :(得分:1)

你缺少一些空间。

更改

String query = "select sum(amt) from" + table +  "where comb = ?";

String query = "select sum(amt) from " + table +  " where comb = ?";