【发布时间】:2019-04-02 17:48:48
【问题描述】:
我正在尝试返回给定学生 ID 的结果集并显示 gpa。但是,当结果集关闭时,我无法执行该操作。这是我的代码:
/**
* Returns a ResultSet with a row containing the computed GPA (named as gpa) for a given student id.
* You must use a PreparedStatement.
*
* @return
* ResultSet containing computed GPA
*/
public ResultSet computeGPA(String studentId) throws SQLException
{
ResultSet rst;
// TODO: Use a PreparedStatement
try(Connection con = connect()){
String sql = "SELECT gpa FROM student WHERE sid=?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, studentId);
rst = pstmt.executeQuery();
while(rst.next()){
System.out.println(rst.getString("gpa"));
}
}
return rst;
}
这是我得到的结果
连接到数据库。 2.96 线程“main”java.sql.SQLException 中的异常:在 ResultSet 关闭后不允许操作 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920) 在 com.mysql.jdbc.ResultSetImpl.checkClosed(ResultSetImpl.java:804) 在 com.mysql.jdbc.ResultSetImpl.getMetaData(ResultSetImpl.java:3107) 在 EnrollJDBC.resultSetToString(EnrollJDBC.java:500) 在 EnrollJDBC.main(EnrollJDBC.java:59)
【问题讨论】:
标签: java mysql database resultset