Я пытаюсь выполнить подготовленный оператор в 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;
}
Unrelated но: лучше использовать метод 'setXXX()', который соответствует фактическому типу данных. 'setObject()' может работать не так, как ожидалось. Поэтому в вашем случае используйте 'setString (1, key)', который будет намного более надежным. –