【发布时间】:2023-03-06 06:10:01
【问题描述】:
这是我搜索特定字符串的方法:
(我想在书名表中搜索)
private static String searchInDB(String keyword) {
String url = "jdbc:mysql://localhost/bookstore";
String query = "Select title from books where title like %?% ";
try {
Connection connection = DriverManager.getConnection(...);
PreparedStatement ps = connection.prepareStatement(query);
ps.setString(1, keyword);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
return rs.getString("title");
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
return null;
}
但是当我调用这个方法时:
System.out.println(searchInDB("so"));
结果中有异常:
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which
is 0).
null
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
...
更新
我添加此代码以获得所有结果,但我进入了一个具有相同值的不定式循环!
String result = searchInDB("so");
while (result != null) {
System.out.println(result);
}
【问题讨论】: