SQL and Java™ type mappings
When you retrieve data from a database into an iterator
object (see Result sets)
or into a host variable, you must use Java™ types
that are compatible with the SQL types. The following table shows
valid conversions from SQL types to Java™ types.
| SQL type | Java™ type |
|---|---|
| BIGINT, BIGSERIAL | bigint |
| BLOB | byte[] |
| BOOLEAN | boolean |
| BYTE | byte[] |
| CHAR, CHARACTER | String |
| CHARACTER VARYING | String |
| CLOB | byte[] |
| DATE | java.sql.Date |
| DATETIME | java.sql.Timestamp |
| DECIMAL, NUMERIC, DEC | java.math.BigDecimal |
| FLOAT, DOUBLE PRECISION | double |
| INT8 | long |
| INTEGER, INT | int |
| INTERVAL | IfxIntervalDF, IfxIntervalYM1 |
| LVARCHAR | String |
| MONEY | java.math.BigDecimal |
| NCHAR, NVARCHAR | String |
| SERIAL | int |
| SERIAL8 | long |
| SMALLFLOAT | float2 |
| SMALLINT | short |
| TEXT | String |
| VARCHAR | String |
Table notes:
- IfxIntervalYM and IfxIntervalDF are HCL Informix® extensions to JDBC 2.0.
- This mapping is JDBC compliant. You can use HCL Informix® JDBC Driver to map SMALLFLOAT data type (via the JDBC FLOAT data type) to the Java™ double data type for backward compatibility by setting the IFX_GET_SMFLOAT_AS_FLOAT environment variable to 1.
You must also use compatible Java™ types
for host variables that are arguments to SQL operations. This table
shows valid conversions from Java™ types
to SQL types.
| Java™ type | SQL type |
|---|---|
| java.math.BigDecimal | DECIMAL |
| boolean | BOOLEAN |
| byte[] | BYTE |
| java.sql.Date | DATE |
| double | FLOAT1 |
| float | SMALLFLOAT |
| int | INT |
| long | INT8 |
| short | SMALLINT |
| String | CHAR |
| java.sql.Time | DATETIME |
| java.sql.Timestamp | DATETIME |
| com.informix.jdbc.IfxIntervalDF | INTERVAL |
| com.informix.jdbc.IfxIntervalYM | INTERVAL |
Table note:
- This mapping is JDBC compliant. You can use HCL Informix® JDBC Driver to map the Java™ double data type (via the JDBC FLOAT data type) to the HCL Informix® SMALLFLOAT data type for backward compatibility by setting the IFX_GET_SMFLOAT_AS_FLOAT environment variable to 1.
Important: Unlike other host languages (for
example, C), Java™ allows null
data. Therefore, you do not need to use null indicator variables with
Embedded SQLJ. The Java™
null value
is equivalent to the SQL NULL value.