【问题标题】:Handling different column types in different databases处理不同数据库中的不同列类型
【发布时间】:2020-12-08 23:10:43
【问题描述】:

我有一个现有数据库,其中包含一个主键列类型为 int 的表,我计划创建一个新数据库,该数据库将在此表中保存更多数据,主键列类型为 bigint。

无论列是 int 还是 bigint,我的 Java 应用程序是否可以访问任一数据库并读取表?

这些是独特的数据库,其中包含完全独立的数据,但架构相同。

我目前还使用 PostgreSQL 和 Oracle,并希望确保我所做的任何事情都适用于它们。

【问题讨论】:

  • 构建数据模型,了解您将使用的数据,然后查找所有供应商支持的 ANSI 定义的数据类型,然后还要了解如何处理 NULL 日期等内容顺便说一下 oracle 和 psql - 所以你的应用程序代码可能在逻辑方面略有不同
  • int 和 bigint 的区别应该是微不足道的。
  • @thatjeffsmith 说了什么。如果你想访问多个数据库,你的代码必须适应最小的公共字段类型。 无论列是 int 还是 bigint,我的 Java 应用程序是否可以访问任一数据库并读取表? 当然。您将这两种字段类型都读入一个 long。

标签: java oracle postgresql jdbc database-design


【解决方案1】:

您可以简单地在您的 java 类中将该字段类型提供为 Long

自动根据 int 或 bigint 映射到那个 Long 字段。由于 Long 有 8 字节大小,它将能够存储来自 -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807.

的整数

图元的大小可以参考this

所以不用担心。

【讨论】:

    【解决方案2】:
    • 如果 oracle 编号小于 10,则使用 java int 数据类型。

    • 如果 oracle 编号小于 20,则使用 java long 数据类型。

    • 否则使用 java BigInteger 数据类型。

    【讨论】:

      猜你喜欢
      • 2019-05-04
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      • 2017-08-29
      • 2014-08-20
      • 1970-01-01
      • 2017-06-04
      • 2021-08-19
      相关资源
      最近更新 更多