当前位置: 首页 > 知识库问答 >
问题:

对于可为空的数值,我应该使用String还是int?

万俟经纶
2023-03-14

我正在尝试读取包含以下字段和值的csv文件:

// "reference"         "choice",    "startDate"
// "123",              "3",         "06.03.1987"
// "Set 1",            "1",         "11.06.1999"
// "Set 2",            "2",         "05.07.2002"
// "Set 2",            "",          "05.07.2002"

引用字段是唯一的,选择字段可能为空。在此场景中,对于我的实体定义:

1.我应该为选择字段使用String吗,因为它在csv文件中可能为空(空字符串)?

2.我应该使引用字段PK还是即使它是唯一的,我认为最好使用Longid字段并为引用字段添加@Col列(唯一=true)。对吗?

3、对于开始日期字段,我认为应该使用本地日期,而不是日期,因为它已被弃用。这是真的吗?

共有1个答案

罗昊明
2023-03-14

1、由于csv文件中的选项字段可能为空(空字符串),我是否应该使用字符串作为选项字段?

您可以将csv值解析为String,并在写入数据库之前使用Integer.parseInt()(以便在csv值不可解析时写入有效数字或null)。

2、如果我要设置引用字段PK,或者即使它是唯一的,我认为最好使用一个长id字段,并为引用字段添加@列(unique=true)。是这样吗?

对于如何选择主键、唯一性是否有意义、如何处理唯一值的重复项(新添加失败?添加相关行?更新现有行,覆盖现有值?)有许多注意事项。你可以就这个问题发表一篇完整的帖子。

对于startDate字段,我认为应该使用LocalDate,而不是Date,因为它已被弃用。这是真的吗?

当然,java。时间LocalDate将是一个不错的选择。

有点迂腐,但是:java上的各种方法。util。Date()已被弃用,但Date本身未被弃用。一般来说,java中有更好的选择。时间包(如本地日期)。

 类似资料:
  • 在最近的许多情况下,但现在我尝试使用安装程序,它会抛出一个错误,并表示“Java未安装”,即使JAVA_HOME设置为Windows 10 64x的AdoptOpenJDK安装程序安装的JDK。我无法找到修复它的方法,不管怎样,今天我尝试安装NetBeans8.2,它显示了这个错误,但我发现您可以向安装程序(--javahome)传递一个参数,然后错误消息从“JDK没有找到(在您的机器中)”变为“

  • 问题内容: 我正在使用c / c 为osx和linux开发命令行界面可执行文件。该项目将链接到opencv。我应该使用libc 还是libstdc ++? 问题答案: 我会为每个操作系统使用本机库,即GNU / Linux上的libstdc 和Mac OS X上的libc 。 libc 在GNU / Linux上不是100%完整的,而libstdc 更完整时使用libc并没有真正的优势。另外,如果

  • 问题内容: 和CSS 和有什么不一样?我应该使用哪一个?为什么? 问题答案: 所有这些答案似乎都是不正确的。与直觉相反,在CSS 中不是pixel 。至少不是在简单的物理意义上。 从W3C,EM,PX,PT,CM,IN…阅读本文,了解如何为CSS发明一个“神奇的”单元。的含义因硬件和分辨率而异。(该文章是最新的,最新更新为2014-10。) 我自己的思考方式: px单位是CSS的魔术单位。它与当前

  • 问题内容: 我正在一个将Angular和Underscore都作为依赖项的项目。 当我需要创建对象的副本时,根据当时的心情,我可以使用或 在我看来,这些方法中的一种可能比另一种更快速/可靠/健壮。 假设已经包含两个库,那么这两个函数中的任何一个是否存在使另一个函数更好或更坏使用的已知问题? 问题答案: 关于您的问题: angular.copy和_.clone是不同的。这不是哪个更好的问题,而是关于

  • 问题内容: 我想从文本文件中读取每一行并将它们存储在ArrayList中(每一行是ArrayList中的一项)。 到目前为止,我知道BufferedInputStream写入缓冲区,并且仅在缓冲区为空时才进行另一次读取,这可以最大程度地减少或至少减少操作系统的操作量。 我正确吗-我说得通吗? 如果以上情况是在任何情况下,任何人都想使用DataInputStream。最后,我应该使用这两个中的哪一个

  • 问题内容: 我对于应该使用javascript创建对象的方式感到困惑。似乎至少有两种方法。一种是使用对象文字符号,而另一种是使用构造函数。有一个相对于另一个的优势吗? 问题答案: 如果您没有与对象相关联的行为(即,如果对象只是数据/状态的容器),则可以使用对象文字。 运用KISS原则。如果除了简单的数据容器之外不需要任何其他内容,请使用简单的文字。 如果要向对象添加行为,则可以使用构造函数并在构造