我正在尝试从我的数据库中查找项目列表,但它会引发异常。我的代码和错误如下,所有字段类型都是正确的。
代码
System.out.println("2");
try {
ps = con.prepareStatement("SELECT * from Users Where name = ?);"
ResultSet r = ps.executeQuery();
ps.setString(1, "jack");
ResultSet result = ps.executeQuery();
....
} catch (SQLException e) {
System.err.println(e.getMessage());
System.out.println(e.getStackTrace());
}
输出
INFO: 2
SEVERE: No value specified for parameter 1
INFO: [Ljava.lang.StackTraceElement;@6520c5b
答案 0 :(得分:2)
在ResultSet r = ps.executeQuery();
上设置参数之前,您正在呼叫PreparedStatement
。在对此方法进行编码时可能会出现拼写错误,因为您在PreparedStatement
上设置参数时会有类似的行。
ps = con.prepareStatement(...);
//comment this line
// ResultSet r = ps.executeQuery();
ps.setString(1, "1");
//...
ResultSet result = ps.executeQuery();
与您的问题没有直接关系,如果您在代码中使用记录器而不是普通的System.out.println
调用会更好。它可以通过向日志提供更好的消息来帮助您维护代码。