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.