org.h2.jdbc.JdbcSQLNonTransientException:对象已关闭[90007-2000]



从h2数据库中遇到这个错误,到目前为止,它工作正常。我知道连接是关闭的,如何防止这种情况发生。

org.h2.jdbc.JdbcSQLNonTransientException:对象已关闭[90007-2000]

ResultSet rest = st.executeQuery("SELECT * FROM monthly_summary WHERE id=(SELECT MAX(id) FROM monthly_summary);");
rest.next();
if(rest.getInt(3) == month && rset.getInt(4) == year) {
double oldAmount = rest.getDouble(2);
st.execute("UPDATE monthly_summary SET amount =" + (oldAmount + amount)  + ";");
} else {
st.execute("INSERT INTO monthly_summary(amount, `month`, `year`) VALUES (" + amount + "," + month + "," + year + ");");
}

ResultSet::next需要在if语句中:

ResultSet rest = st.executeQuery("SELECT * FROM monthly_summary WHERE id=(SELECT MAX(id) FROM monthly_summary);");
if (rest.next()) {
if(rest.getInt(3) == month && rset.getInt(4) == year) {
double oldAmount = rest.getDouble(2);
st.execute("UPDATE monthly_summary SET amount =" + (oldAmount + amount)  + ";");
} else {
st.execute("INSERT INTO monthly_summary(amount, `month`, `year`) VALUES (" + amount + "," + month + "," + year + ");");
}
}

消息的异常

org.h2.jdbc.JdbcSQLNonTransientException:对象已关闭[90007-2000]

(或此处为德语版本:org.h2.jdbc.JdbcSQLNonTransientException: Das Objekt wurde bereits geschlossenThe object is already closed [90007-200](

如果您尝试使用已关闭的Connection,则会发生这种情况"关闭";可以通过调用CCD_ 6显式地发生,并且可以隐式地发生在CCD_。

您可以使用以下命令检查您的Connection是否已关闭:connection.isClosed()

最新更新