我已创建预备语句对象。 现在我想得到多个查询的结果。是否可以使用单个预处理语句对象/找到下面的片段代码
PreparedStatement ps = null;
String moviedirectorQry = "SELECT movie_director FROM movies WHERE movie_title= ?";
ps = dbConnection.prepareStatement(moviedirectorQry);
ps.setString(1, "Twilight");
ResultSet rs=null;
rs = ps.executeQuery(moviedirectorQry);
while (rs.next()) {
String director_name = rs.getString("movie_director");
System.out.println("director name : " + director_name);
}
现在我想运行另一个查询..怎么做
答案 0 :(得分:2)
如果想要对同一类型的不同查询使用相同的PreparedStatement
,只更改参数值,则可以,只需先调用clearParameters()
清除参数以防万一您希望在设置新参数值之前重复使用它。
代码可能是这样的:
if (ps == null) {
// The PreparedStatement has not yet been initialized so we create it
String moviedirectorQry = "SELECT movie_director FROM movies WHERE movie_title= ?";
ps = dbConnection.prepareStatement(moviedirectorQry);
} else {
// The PreparedStatement has already been initialized so we clear the parameters' value
ps.clearParameters();
}
ps.setString(1, someValue);
ResultSet rs = ps.executeQuery();
NB:您应该使用executeQuery()
而不是ps.executeQuery(moviedirectorQry)
,否则将忽略提供的参数值,以便查询失败。