我在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
有效是一种不好的做法吗?
最佳答案
Long
将允许 null
值,其中 long
不得为 null。所以我会将它与您的数据库列相匹配 - 它是否可以为空?
编辑已编辑的问题:
要检查数据库中的值实际上是否为 0
或 null
,请使用 ResultSet.wasNull
.
关于java - 在oracle中使用long或Long映射 "NUMBER"列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9492746/