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/

相关文章:

sql - 如何自动将数据从SQL Server 推送到Oracle?

Java 流 : group a List into a Map of Maps

java - 与 lucene 相交的边界

java - 实例化其子类将取决于用户输入的对象

database - 缺席制度

mysql - Rails 是否在 mysql 数据库中设置任何内容?

java - Cucumber Java - ExtentReports - 不兼容的类更改错误 : Implementing class

java - 使用编译的类文件和现有的 MANIFEST.MF 文件创建 jar 文件

asp.net - LINQ 问题 : FK-Table not set correctly

java - 性能更好的连接池API