数据访问对象原始类型与对象类型?

时间:2011-12-07 17:18:05

标签: java database-design object primitive

想要了解最佳方式的意见。

如您所见,int不能为null。 作为整数的对象可以在哪里。

问题:具有数字列的数据库值可以为null或可以包含数字。 当数据库传递null值时,我们会收到并说明异常 “原始值不能为空”

但是当我们使用Integer类时,我们正在创建该对象(当然它比原始类型int更大/更大)

所以这给我带来了几个选择。

  1. 使用整数类型。
  2. 将数据库列设置为“默认”
  3. 如果数据库中存在不同的内容,则将int设置为default,然后接受
  4. 还有其他建议吗?

3 个答案:

答案 0 :(得分:3)

我认为你不必担心Integer< - >如果查询数据库(5000 op / sec),则转换性能(100000000 opsec)。勇敢地使用盒装类型。

答案 1 :(得分:2)

使用Hibernate(或类似的ORM)让框架直接处理数据库。然后你可以按照你喜欢的方式编程,而不必处理转换。

重新发明轮子很少有效,只是在第一时间使用别人的轮子,特别是当成千上万的人已经使用相同的轮子时。

答案 2 :(得分:2)

我的选择:

首先 - 如果可能,并且在逻辑上可以在数据库中设置默认值(可能是一个FK到一个具有所有值+默认值的ref表)。

第二 - 如果第一个不可能,我将使用Integer对象而无需任何保留。我认为你不会有性能问题。代码将是干净的,但文档在变量中“可以包含null并在处理此变量时检查null”。

我总是会选择一些更具可读性和易懂性的东西来保持软件的可维护性和灵活性。