自动数据类型转换
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
许多原生 SQL 数据类型可以相互自动转换,例如 VARCHAR
到 INTEGER
,反之亦然。
jOOQ API 还通过 org.jooq.tools.Convert
实用程序 API 支持各种此类自动转换,该 API 实现了以下规则
-
无论目标类型如何,
null
始终转换为null
,或原始类型的默认值,或Optional.empty()
。 - 身份转换(将值转换为其自身类型)始终是可能的。
- 原始类型可以转换为其包装类型,反之亦然
- 所有类型都可以转换为 String
- 所有类型都可以转换为 Object
- 所有 Number 类型都可以转换为其他 Number 类型
- 所有
Number
或String
类型都可以转换为Boolean
。true
的可能值(不区分大小写)-
1
-
1.0
-
y
-
yes
-
true
-
on
-
enabled
false
的可能值(不区分大小写)-
0
-
0.0
-
n
-
no
-
false
-
off
-
disabled
所有其他值评估为null
-
- 所有
java.util.Date
子类型(java.sql.Date
,java.sql.Time
,java.sql.Timestamp
),以及大多数java.time.temporal.Temporal
子类型(java.time.LocalDate
,java.time.LocalTime
,java.time.LocalDateTime
,java.time.OffsetTime
,java.time.OffsetDateTime
,以及java.time.Instant
) 可以相互转换。 -
byte[]
可以转换为String
,使用平台的默认字符集 -
如果数组元素也可以转换,则
Object[]
可以转换为任何其他数组类型
这种自动转换可以显式应用,但也可以通过各种 API 使用,尤其是在可以提供 java.lang.Class
参考的任何地方,例如
Record record = ... int i = record.get(0, int.class); String s = record.get(1, String.class);
反馈
您对此页面有任何反馈吗? 我们很乐意听取您的意见!