我从Oracle数据库做了一个简单的查询,我在日志中看到了这个错误:
java.lang.NullPointerException
at oracle.jdbc.driver.OracleStatement.wasNullValue(OracleStatement.java:3337)
at oracle.jdbc.driver.OracleResultSetImpl.wasNull(OracleResultSetImpl.java:122)
以下是导致该错误的代码:
public static Long getLong(ResultSet rs, String columnName) throws SQLException{
long val = rs.getLong(columnName);
return rs.wasNull() ? null : val;
}
为什么wasNullValue会抛出NullPointerException?这是从结果集中检索数据的正确方法吗?
答案 0 :(得分:0)
Oracle JDBC瘦驱动程序中存在一个旧错误,如果在关闭的ResultSet上调用,则wasNull将抛出NPE。所以你可能想在调用wasNull()之前尝试调用rs.isClosed()。