关键报错信息如下:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1
意思是在“?”附近有语法错误。
但是检查SQL语句检查了好几遍,确实没有问题。最后仔细比对正确的代码,发现错误出现在另一条语句上(真是会误导人。。。)
修正如下:
conn = DBUtils.getConnect();
String sql = "select * from postings where id = ?";
state = (PreparedStatement) conn.prepareStatement(sql);
state.setInt(1, posting_id);//设置参数
rs = state.executeQuery(sql);
只要里面最后一条语句:rs = state.executeQuery(sql); 改为:rs = state.executeQuery();
即把参数去掉即可,问题解决!
另外提一句,如果sql语句不带参数,则还是 rs = state.executeQuery(sql) 的形式。