java - 在oracle中使用long或Long映射 "NUMBER"列?

标签 java database

我在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。所以我会将它与您的数据库列相匹配 - 它是否可以为空?

编辑已编辑的问题:

要检查数据库中的值实际上是否为 0null,请使用 ResultSet.wasNull .

关于java - 在oracle中使用long或Long映射 "NUMBER"列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9492746/

相关文章:

java - 在orientDB中,以下数据类型可以在orientDb的图形数据库中使用还是只能在orientDb的文档数据库中使用?

PHP如何检查MySQL数据库中已有的电子邮件?

MySQL小写返回值或整个结果

java - Android SQLite 中的 WHERE 子句

python - 图像的光谱哈希与汉明距离匹配

java - 使用 JDBC PreparedStatement 在 Oracle 中创建序列

java - 即使启用 CORS,POST 也会被阻止

java - 运行 GAE 的 Eclipse Neon 刷新速度极其缓慢

java - Maven:如何覆盖依赖关系

java - 如何找到 List<E> 中的最小值?