自动数据类型转换
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
许多原生 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);
反馈
您对此页面有任何反馈吗? 我们很乐意听取您的意见!