为什么 OracleStatement.wasNullValue 抛出 NullPointerException?
Why does OracleStatement.wasNullValue throw NullPointerException?
我从 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?这是从结果集中检索数据的正确方法吗?
Oracle JDBC 瘦驱动程序中存在一个旧错误,如果在关闭的结果集上调用 wasNull 会抛出 NPE。所以你可能想在调用 wasNull().
之前尝试调用 rs.isClosed()
我从 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?这是从结果集中检索数据的正确方法吗?
Oracle JDBC 瘦驱动程序中存在一个旧错误,如果在关闭的结果集上调用 wasNull 会抛出 NPE。所以你可能想在调用 wasNull().
之前尝试调用 rs.isClosed()