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
This documentation is for the unreleased development version of jOOQ. Click on the above version links to get this documentation for a supported version of jOOQ.
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!