Available in versions: Dev (3.21) | Latest (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11
Auto data type conversion
Supported by ✅ Open Source Edition ✅ Express Edition ✅ Professional Edition ✅ Enterprise Edition
Many native SQL data types can be automatically converted from one another, such as VARCHAR to INTEGER and vice versa.
The jOOQ API also supports a variety of such auto conversions through the org.jooq.tools.Convert utility API, which implements the following rules:
-
nullis always converted tonull, or the primitive default value, orOptional.empty(), regardless of the target type. - Identity conversion (converting a value to its own type) is always possible.
- Primitive types can be converted to their wrapper types and vice versa
- All types can be converted to String
- All types can be converted to Object
- All Number types can be converted to other Number types
- All
NumberorStringtypes can be converte toBoolean. Possible (case-insensitive) values fortrue:-
1 -
1.0 -
y -
yes -
true -
on -
enabled
Possible (case-insensitive) values forfalse:-
0 -
0.0 -
n -
no -
false -
off -
disabled
All other values evaluate tonull -
- All
java.util.Datesubtypes (java.sql.Date,java.sql.Time,java.sql.Timestamp), as well as mostjava.time.temporal.Temporalsubtypes (java.time.LocalDate,java.time.LocalTime,java.time.LocalDateTime,java.time.OffsetTime,java.time.OffsetDateTime, as well asjava.time.Instant) can be converted into each other. -
byte[]can be converted intoString, using the platform's default charset -
Object[]can be converted into any other array type, if array elements can be converted, too
This auto conversion can be applied explicitly, but is also available through a variety of API, in particular anywhere a java.lang.Class reference can be provided, such as:
Record record = ... int i = record.get(0, int.class); String s = record.get(1, String.class);
Feedback
Do you have any feedback about this page? We'd love to hear it!