我试图在JDBC中执行预准备语句,并且每次执行它时都会收到错误消息“Paramater not set”。 我曾多次尝试检查未设置的参数 - 但我只有一个。这使我相信这是我的另一个愚蠢的错误。准备好的语句中的参数未设置错误
如果你能指出这一点给我,我会
public book search(String key){
book temp = null;
try {
String stmt = "SELECT BookID, Title, Author, Media, Available FROM BOOK WHERE Title LIKE ?;";
connection = DatabaseConnection();
PreparedStatement preparedStmt = connection.prepareStatement(stmt);
System.out.println(key);
preparedStmt.setObject(1, key);//the name
statement = connection.prepareStatement(stmt); //Using Prepared Statements prepare the query
resultSet = statement.executeQuery(); //Execute the query
while (resultSet.next()) {
int bookID = resultSet.getInt("BookID");//Get the userName
String title = resultSet.getString("Title"); //Get the score
String author = resultSet.getString("Author"); //Get the score
String media = resultSet.getString("Media"); //Get the score
boolean available = resultSet.getBoolean("Available"); //Get the score
temp = new book(title,author,media,available,bookID);
}
connection.close(); //close connection
} catch (SQLException e) {
System.err.println("Got an exception!");
System.err.println(e.getMessage());
}
return temp;
}
无关但是:最好使用与实际数据类型相对应的'setXXX()'方法。 'setObject()'可能不总是按预期工作。所以在你的情况下,使用'setString(1,key)'将会更加可靠。 –