我已经编写了一个准备好的声明,但它在?处给出了语法错误。我无法理解什么是错的。它应该传递一个电影名称并将结果作为该电影的导演
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);
答案 0 :(得分:5)
问题在于:
rs=preparedStatement.executeQuery(sql);
您不应将SQL String
传递给executeQuery()
,因为预准备语句已包含SQL String
,其中?
占位符替换为{{movieName
1}}。
使用:
rs=preparedStatement.executeQuery();