这个问题已经在这里有了答案: > preparedStatement syntax error 2个
我已经编写了一条准备好的语句,但是它在?处给出了语法错误.我无法理解到底出了什么问题,它应该传递电影名称并作为该电影的导演获得结果
stmt=getConnection().createStatement();
String sql="SELECT directors FROM moviedata WHERE moviedata.title = ?";
PreparedStatement preparedStatement=conn.prepareStatement(sql);
preparedStatement.setString(1,movieName);
rs=preparedStatement.executeQuery(sql);
解决方法:
问题在这里:
rs=preparedStatement.executeQuery(sql);
您不应该将SQL字符串传递给executeQuery(),因为准备好的语句已经包含带有?的SQL字符串.占位符由movieName的值替换.
采用:
rs=preparedStatement.executeQuery();
标签:java,sql,mysql,prepared-statement
来源: https://codeday.me/bug/20191011/1894454.html