2012-02-29 45 views
0

我在oracle中有一個數據庫列,其類型是「NUMBER」。使用long或Long來映射oracle中的「NUMBER」列?

我想用long或long來映射它。但我不知道我應該使用哪種類型,原始類型還是對象類型?有一個約定嗎?我的情況是,值是我想從DAO方法中唯一想要的:

public class SampleDAO{ 
    public long fetchNumberValue(){ 
    //Is it better to return long value instead of Long? 
    } 
} 

而且如果我想將該值包裝在對象中呢?

public class SampleObject(){ 
    //Is it better to use Long to use methods like hashCode() inherited from Object? 
    private Long value;  
} 

編輯:
感謝所有的答案。我知道這取決於我是否需要接受空值。

此數據庫列不可爲空,實際上它是主鍵。它可能有這樣的值,如0,1,2等...好吧,另一個問題出現,我怎麼知道如果我得到匹配的行與0值或沒有匹配的行? java.sql.ResultSet.getLong返回long值,如果該列的值爲SQL NULL,則返回0。或者在這樣的列中有0有效是不好的做法?

回答

3

Long將允許null值,其中long不能爲空。所以我會匹配你的數據庫列 - 是否可以空?

編輯的編輯問題:

要檢查值實際上0null在數據庫中,使用ResultSet.wasNull

+0

感謝您的回答。我已更新。 – 2012-02-29 02:56:10

+0

@GrantZhu - 查看我更新的答案。 – ziesemer 2012-02-29 03:02:54

+0

非常感謝。 – 2012-02-29 03:22:15

1

這歸結於如果你想接受空值或不。

1

通常情況下,您想使用原始類型,而不是對象,如果唯一想要的是值,並且該值不會爲空。對於你所有的轉換需求,你有這個類(比如String.parse)。

0

你還應該考慮到Long對象消耗更多的內存 - 不確定在多長時間 - 比長基元。如果Nullable屬性不是問題,則應使用基本數據類型。