编辑:后续检查addrline2(addrline2 == null)显示addrline2实际上是null,打印出null对象,导致字符串“null”进入stdout。
我正在使用带有Oracle 11g数据库的Oracle 11g瘦客户端。查询包含null的列时,getString(“colname”)返回字符串“null”而不是Java null值。这是预期的行为吗? Javadoc表示我应该收到Java null。
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
答案 0 :(得分:7)
请注意,null对象在转换为字符串时会打印为&#34; null&#34;。你实际上并没有在任何地方检查无效。
尝试添加
if (addrline2 == null) {
System.out.println("It's null!")
}
答案 1 :(得分:1)
rs.getString(“addressLine2”)仅返回null,但是当你执行
时System.out.println("addrLine2->"+addrline2+"<-");
将其打印为字符串文字
这样做
System.out.println("addrLine2->"+addrline2!=null ? addrline2 : "Its null"+"<-");