以下代码段从数据库中获取照片的名称:
Context context = new InitialContext();
DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/photog");
Connection connection = ds.getConnection();
String sqlQuery = "select nameofthephoto from photocaptions where useremail='" + email + "'";
PreparedStatement statement = connection.prepareStatement(sqlQuery);
set = statement.executeQuery();
if(set == null) {
System.out.println("set is null !");
} else if(set != null) {
System.out.println("set is not null !");
System.out.println(set.next());
System.out.println(set.getString("nameofthephoto")); // last statement
}
else-if 块执行
代码最后两条语句的结果是:
false
最后一条语句引发异常,即
java.sql.SQLException:当前光标位置的操作无效。
表中只有一个“数据行”与查询匹配,这也可以通过 显示的错误结果可见while.next()
。那么为什么上面代码片段中的最后一条语句(stacktrace 这么说)会引发异常?_