java数据访问对象原语类型与对象类型?
我想知道最好的方法
正如您所见,int不能为null。 其中整数的对象可以
问题:列为数字的数据库值可以为null,也可以包含数字。 当数据库传递null值时,我们会收到一个异常,表明 “基元值不能为null”
但是,当我们使用Integer类时,我们正在创建那个对象(当然,它比基本类型int更大/更庞大)
所以这给我带来了两个选择
- 使用整数类型李>
- 将数据库列设置为“默认”
- 如果数据库中有不同的内容,请将int设置为default,然后接受它
还有其他建议吗
# 1 楼答案
我认为你不必担心Integer<->;int转换性能(100000000操作秒),如果查询数据库(5000操作秒)。勇敢地使用盒装类型
# 2 楼答案
使用Hibernate(或类似的ORM),让框架直接处理数据库。然后你可以按自己喜欢的方式编程,而不必处理转换
重新发明轮子很少能像一开始就使用别人的轮子那样有效,尤其是当成千上万的人已经在使用同一个轮子的时候
# 3 楼答案
我的选择:
首先-如果可能,并且在数据库中设置默认值在逻辑上是正确的(可能是一个FK到一个包含所有值的ref表+一个默认值)
第二,如果第一个不可能,我会毫无保留地使用Integer对象。我认为你不会有性能问题。代码将是干净的,但文档中的变量“可以包含null,并在处理该变量时检查null”
为了保持软件的可维护性和灵活性,我总是选择可读性和可理解性更强的软件