Java 数据访问对象原语类型与对象类型?

Java 数据访问对象原语类型与对象类型?,java,database-design,object,primitive,Java,Database Design,Object,Primitive,我想知道最好的方法 如您所见,int不能为null。 其中作为Integer的对象可以 问题:列为数字的数据库值可以为null,也可以包含数字。 当数据库传递null值时,我们会收到一个异常,表明 “基元值不能为null” 但当我们使用Integer类时,我们创建的是那个对象(当然比基本类型int更大/更笨重) 所以我有两个选择 使用整数类型 将数据库列设置为“默认” 如果数据库中有不同的内容,请将int设置为default,然后接受该内容 还有其他建议吗?使用Hibernate(或类似的ORM

我想知道最好的方法

如您所见,int不能为null。 其中作为Integer的对象可以

问题:列为数字的数据库值可以为null,也可以包含数字。 当数据库传递null值时,我们会收到一个异常,表明 “基元值不能为null”

但当我们使用Integer类时,我们创建的是那个对象(当然比基本类型int更大/更笨重)

所以我有两个选择

  • 使用整数类型
  • 将数据库列设置为“默认”
  • 如果数据库中有不同的内容,请将int设置为default,然后接受该内容
  • 还有其他建议吗?

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

    重新发明轮子很少能像一开始就使用别人的轮子那样有效,尤其是当成千上万的人已经使用相同的轮子时。

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


    重新发明轮子很少能像一开始就使用别人的轮子那样有效,尤其是当成千上万的人已经使用同一个轮子时。

    如果查询数据库(5000次操作/秒),我认为您不必担心整数整数整数转换性能(100000000次操作秒)。勇敢地使用装箱类型。

    如果查询数据库(5000次操作/秒),我认为您不必担心整数整型转换性能(100000000次操作秒)。勇敢地使用装箱类型。

    我的选择:

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

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

    我总是选择可读性和可理解性更强的软件,以保持软件的可维护性和灵活性。

    我的选择:

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

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


    我总是选择可读性和可理解性更强的东西,以保持软件的可维护性和灵活性。

    的确如此,但无论如何,基元类型都不能为空。因此,如果数据访问对象使用基元类型。如果您的数据库没有相应的值,那么它会抛出一个异常。如果您不能使用基元类型(如果您需要它为null),可以吗?如果您需要一个可为空的原语,可以使用支持它的语言,或者使用该原语的可为空版本(在本例中为整数)。啊,但这就是问题所在。。。我们应该使用primitive类型并将所有数据库值设置为某种默认值,还是在数据访问对象(更大、占用更多空间)上使用Integer类型更明智?正确地建模数据。如果null为null,则使用null。将已经解决的问题的解决方案拼凑在一起只会产生更多的问题。如果存储空值无效,则不要存储它们。如果是,则将其存储为null。对象模型和数据库模型也是如此。在你能证明这是个问题之前,不要担心尺寸。可维护性是最重要的问题,直到其他问题表现出更大的重要性。你说得很对。我猜或多或少,我考虑的是更大的图景,不仅仅是简单的整数,而且随着软件越来越大,会越来越远。事实上,但无论如何,基本类型都不能为null。因此,如果数据访问对象使用基元类型。如果您的数据库没有相应的值,那么它会抛出一个异常。如果您不能使用基元类型(如果您需要它为null),可以吗?如果您需要一个可为空的原语,可以使用支持它的语言,或者使用该原语的可为空版本(在本例中为整数)。啊,但这就是问题所在。。。我们应该使用primitive类型并将所有数据库值设置为某种默认值,还是在数据访问对象(更大、占用更多空间)上使用Integer类型更明智?正确地建模数据。如果null为null,则使用null。将已经解决的问题的解决方案拼凑在一起只会产生更多的问题。如果存储空值无效,则不要存储它们。如果是,则将其存储为null。对象模型和数据库模型也是如此。在你能证明这是个问题之前,不要担心尺寸。可维护性是最重要的问题,直到其他问题表现出更大的重要性。你说得很对。我猜或多或少,我在想更大的图景,不仅仅是简单的INT,而是随着软件越来越大而进一步。处理器时间很便宜,如果你能证明你以后遇到了问题,那就去解决它。否则,您将有更多问题需要解决。同意。处理器时间很便宜,如果你能证明你以后遇到了问题,那就去解决它。否则,您将有更多的问题需要解决。任何时候使用整数(与int相反)时,您都需要假设它可能为null,就像使用任何对象引用一样。如果你不这样做,你只是在问bug。但是如果设计中有一个不变量,它规定一个特定的对象不能为null,并且它应该总是包含一个有效的对象,那么我会