编辑:对addrline2的后续检查(addrline2 == null)显示addrline2实际上为null,打印出null对象,导致字符串“ null”进入标准输出。

我正在将Oracle 11g瘦客户端与Oracle 11g数据库一起使用。查询包含null的列时,getString(“ colname”)返回字符串“ null”而不是Java null值。那是预期的行为吗? Javadoc指示我应该收到Java空值。

    ResultSet rs = descStatement.executeQuery();

    rs.next();
    String addrline2 = rs.getString("addressLine2");
    System.out.println("addrLine2->"+addrline2+"<-");

    boolean wasNull = rs.wasNull();
    System.out.println("Wasnull: "+wasNull);


输出:

addrLine2->null<-
Wasnull: true

最佳答案

请注意,当将空对象转换为字符串时,其输出为“空”。您实际上并没有在任何地方检查是否为空。

尝试添加

if (addrline2 == null) {
    System.out.println("It's null!")
}

10-07 20:53