簡體   English   中英

Oracle ResultSet.getString(“ colname”)返回字符串“ null”而不是java null

[英]Oracle ResultSet.getString(“colname”) returning the string “null” instead of java null

編輯:對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

請注意,將null對象轉換為字符串時,將其輸出為“ null”。 您實際上並沒有在任何地方檢查是否為空。

嘗試添加

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

rs.getString(“ addressLine2”)僅返回null,但當您這樣做時

System.out.println("addrLine2->"+addrline2+"<-");

將其null打印為字符串文字

像這樣做

  System.out.println("addrLine2->"+addrline2!=null ? addrline2 : "Its null"+"<-");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM