Statement stmt = con.createStatement();
String pubBooks = "select title_name " +
"from publisher, title " +
"where pub_name = ? " +
"and publisher.pub_no = title.pub_no " +
"order by title_name";
ResultSet rS = stmt.executeQuery(pubBooks);
stmt.close();
String pubss = "Irwin";
PreparedStatement pStmt =
con.prepareStatement(pubBooks);
pStmt.setString(1, pubss);
pStmt.executeUpdate();
Эй, я пытаюсь использовать JDBC для запроса моей базы данных к списку названий книг, созданных этим издателем, однако я столкнулся с ошибкой java.sql.SQLException: ORA-01008: не все связанные переменные. Я пытаюсь все, о чем я могу думать, но я просто не совсем уверен, что делать в этот момент.
Вы были близки к попытке PreparedStatement
, за исключением того, что вы просто вызвали неправильный метод "выполнить". Используйте executeQuery()
чтобы вернуть ResultSet
.
PreparedStatement pStmt =
con.prepareStatement(pubBooks);
pStmt.setString(1, pubss);
ResultSet rS = pStmt.executeQuery();
Заявление не может использоваться при поставке параметров для запроса, используйте PreparedStatement. Возможно, вам придется пересмотреть свой код, как показано ниже:
String pubBooks = "select title_name " +
"from publisher, title " +
"where pub_name = ? " +
"and publisher.pub_no = title.pub_no " +
"order by title_name";
String pubss = "Irwin";
PreparedStatement pStmt = con.prepareStatement(pubBooks);
pStmt.setString(1, pubss);
ResultSet rS = pStmt.executeQuery();
//TODO: code to use resultset rS
rS.close();
pstmt.close();
Statement
вообще, только вашеPreparedStatement
.