【问题标题】:how to matching oracle and java datatypes如何匹配oracle和java数据类型
【发布时间】:2023-01-10 20:02:32
【问题描述】:

我有一些 oracle 数据类型。然而,这些有时是以不同的方式编写的……我如何找到它们的等效 Java 数据?

例子是:

oracle_id --> number(15,0) 与此等效的 java 数据类型是什么?

oracle_id2 --> number(2,0) 与此等效的 java 数据类型是什么?

oracle_id3 --> number(5,0) 与此等效的 java 数据类型是什么?

oracle_id4 --> number(4,0) 与此等效的 java 数据类型是什么?

看网上的例子,java端一般都解释number会是Long,但是如何找到number(2,0)或number(15,0)等数据类型的等价物呢?

【问题讨论】:

  • Long 可以,因为他们没有小数

标签: java oracle spring-boot hibernate spring-data-jpa


【解决方案1】:

“等效”是错误的思考方式。只有“大到足以代表所有可能的值”。

A Java int can store up to +2,147,483,647。因此它最多可以存储 9 位十进制数字(加上 10 位数字的一小部分)。

如果您的 Oracle 类型小于或等于 9,那么它可以适合 Java int。 10个以上,一定是Java long。

【讨论】:

  • 感谢您的回答,但有一点我不明白。有一列我在 Oracle 端保留“月份”信息。 column name = "month" type = "number(2,0)" 什么是 java 等效项?同样,column_name="year" type="number(4,0)" java 中的这个是什么?我在这里很困惑。
【解决方案2】:

我认为您应该发布问题的原因,因为这有点令人困惑。

  1. 如果您询问在 Java 中应该使用什么数据类型来获取这些列,Long 是可以的。

  2. 如果您询问 Oracle 中管理其精度的数据类型。我认为没有管理它的原始数据类型,但你可以创建一个内部管理双精度的类,并且在构造函数中你可以在保存之前将数字中继到特定数量的小数。您应该根据您的要求决定逻辑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    相关资源
    最近更新 更多