Tipos de datos que se correlacionan con tipos de datos de base de datos en aplicaciones Java
Para escribir programas JDBC y SQLJ eficientes, debe utilizar las mejores correlaciones entre los tipos de datos Java y los tipos de datos de columna de tabla.
Las siguientes tablas resumen las correspondencias de los tipos de datos de Java con los tipos de datos de bases de datos y de JDBC para un Db2 en sistemas Linux®, UNIX y Windows, Db2 for z/OS®, o IBM® Informix® sistema.
Tipos de datos para actualizar columnas de tabla
La siguiente tabla resume las asignaciones de tipos de datos Java a tipos de datos de bases de datos para métodos PreparedStatement.setXXX o ResultSet.updateXXX en programas JDBC, y para expresiones de host de entrada en programas SQLJ. Cuando se enumera más de un tipo de datos Java, el primer tipo de datos es el tipo de datos recomendado.
| Tipo de datos Java | Tipo de datos de base de datos |
|---|---|
| short, java.lang.Short | SMALLINT |
| boolean1, byte1, java.lang.Boolean, java.lang.Byte | SMALLINT |
| int, java.lang.Integer | ENTERO |
| long, java.lang.Long | BIGINT1 3 |
| java.math.BigInteger | BIGINT1 2 |
| java.math.BigInteger | CARACTER( n ) 12, 5 |
| float, java.lang.Float | REAL |
| double, java.lang.Double | doble |
| java.math.BigDecimal | DECIMAL( p, s ) 2 |
| java.math.BigDecimal | DESFLOTA( n ) 3, 4 |
| java.lang.String | CARACTER( n ) 5 |
| java.lang.String | GRÁFICO( m ) 6 |
| java.lang.String | VARCHAR( n ) 7 |
| java.lang.String | VARGRAFICO( m ) 8 |
| java.lang.String | CLOB9 |
| java.lang.String | XML11 |
| byte[] | CHAR( n ) PARA DATOS DE BITS 5 |
| byte[] | VARCHAR(n) PARA DATOS DE BIT7 |
| byte[] | BINARIO( n ) 5, 14 |
| byte[] | VARBINARIO( n ) 7, 14 |
| byte[] | BLOB9 |
| byte[] | ROWID |
| byte[] | XML11 |
| java.sql.Blob | BLOB |
| java.sql.Blob | XML11 |
| java.sql.Clob | CLOB |
| java.sql.Clob | DBCLOB10 |
| java.sql.NClob | DBCLOB10 |
| java.sql.Clob | XML11 |
| java.sql.Date | FECHA |
| java.sql.Time | Hora |
| java.sql.Timestamp | TIMESTAMP, TIMESTAMP( p ), TIMESTAMP CON ZONA HORARIA, TIMESTAMP( p ) CON ZONA HORARIA 15, 16 |
| java.io.ByteArrayInputStream | BLOB |
| java.io.StringReader | CLOB |
| java.io.ByteArrayInputStream | CLOB |
| java.io.InputStream | XML11 |
| ecom.ibm.db2.jcc.DB2RowID (en desuso) | ROWID |
| java.sql.RowId | ROWID |
| com.ibm.db2.jcc.DB2Xml (en desuso) | XML11 |
| java.sql.SQLXML | XML11 |
| java.util.Date | CARACTER( n ) 12, 5 |
| java.util.Date | VARCHAR( n ) 12, 5 |
| java.util.Date | FECHA12 |
| java.util.Date | HORA12 |
| java.util.Date | TIMESTAMP, TIMESTAMP( p ), TIMESTAMP CON ZONA HORARIA, TIMESTAMP( p ) CON ZONA HORARIA 12, 15, 16 |
| java.util.Calendar | CARACTER( n ) 12, 5 |
| java.util.Calendar | VARCHAR( n ) 12, 5 |
| java.util.Calendar | FECHA12 |
| java.util.Calendar | HORA12 |
| java.util.Calendar | TIMESTAMP, TIMESTAMP( p ), TIMESTAMP CON ZONA HORARIA, TIMESTAMP( p ) CON ZONA HORARIA 12, 15, 16 |
Notas:
|
|
Tipos de datos para recuperar datos de columnas de tabla
La siguiente tabla resume las correspondencias de Db2 o IBM Informix tipos de datos a tipos de datos Java para métodos ResultSet.getXXX en programas JDBC y para iteradores en programas SQLJ. Esta tabla no incluye los tipos de objetos contenedores numéricos de Java, que se recuperan utilizando ResultSet.getObject.
| Tipos de datos SQL | Tipo de datos Java o tipo de objeto Java recomendado | Otros tipos de datos Java compatibles |
|---|---|---|
| SMALLINT | short | byte, int, long, float, double, java.math.BigDecimal, boolean, java.lang.String |
| ENTERO | int | short, byte, long, float, double, java.math.BigDecimal, boolean, java.lang.String |
| BIGINT 6 | long | int, short, byte, float, double, java.math.BigDecimal, boolean, java.lang.String |
| DECIMAL(p,s) o NUMERIC(p,s) | java.math.BigDecimal | long, int, short, byte, float, double, boolean, java.lang.String |
| DESFLOTA( n ) 1, 2 | java.math.BigDecimal | long, int, short, byte, float, double, java.math.BigDecimal, boolean, java.lang.String |
| REAL | flotante | long, int, short, byte, double, java.math.BigDecimal, boolean, java.lang.String |
| doble | doble | long, int, short, byte, float, java.math.BigDecimal, boolean, java.lang.String |
| CAR(n ) | java.lang.String | long, int, short, byte, float, double, java.math.BigDecimal, boolean, java.sql.Date, java.sql.Time, java.sql.Timestamp, java.io.InputStream, java.io.Reader |
| VAR CHAR(n) | java.lang.String | long, int, short, byte, float, double, java.math.BigDecimal, boolean, java.sql.Date, java.sql.Time, java.sql.Timestamp, java.io.InputStream, java.io.Reader |
| CAR(n ) PARA DATOS DE BIT | byte[] | java.lang.String, java.io.InputStream, java.io.Reader |
| VARCHAR(n) PARA DATOS DE BIT | byte[] | java.lang.String, java.io.InputStream, java.io.Reader |
| BINARIO( n ) 7 | byte[] | Ninguno |
| VARBINARIO( n ) 7 | byte[] | Ninguno |
| GRÁFICO(m) | java.lang.String | long, int, short, byte, float, double, java.math.BigDecimal, boolean, java.sql.Date, java.sql.Time, java.sql.Timestamp, java.io.InputStream, java.io.Reader |
| VARGRÁFICO(m ) | java.lang.String | long, int, short, byte, float, double, java.math.BigDecimal, boolean, java.sql.Date, java.sql.Time, java.sql.Timestamp, java.io.InputStream, java.io.Reader |
| CLOB(n ) | java.sql.Clob | java.lang.String |
| BL OB (n) | java.sql.Blob | byte []3 |
| DBCL OB (m) | No hay un equivalente exacto. 5 | |
| ROWID | java.sql.RowId | byte[], com.ibm.db2.jcc.DB2RowID (en desuso) |
| XML4 | java.sql.SQLXML | byte[], java.lang.String, java.io.InputStream, java.io.Reader |
| FECHA | java.sql.Date | java.sql.String, java.sql.Timestamp |
| Hora | java.sql.Time | java.sql.String, java.sql.Timestamp |
| TIMESTAMP, TIMESTAMP( p ), TIMESTAMP CON ZONA HORARIA, TIMESTAMP( p ) CON ZONA HORARIA 8, 9 | java.sql.Timestamp | java.sql.String, java.sql.Date, java.sql.Time, java.sql.Timestamp |
Notas:
|
||
Tipos de datos para invocar procedimientos almacenados y funciones definidas por el usuario
La siguiente tabla resume las correspondencias entre los tipos de datos Java y los tipos de datos de JDBC, y Db2 o IBM Informix tipos de datos para llamar a parámetros de funciones definidas por el usuario y procedimientos almacenados. Las asignaciones de tipos de datos Java a tipos de datos de l JDBC e son para métodos de l CallableStatement.registerOutParameter e en programas de l JDBC. Las asignaciones de tipos de datos Java a tipos de datos del servidor de datos son para parámetros en procedimientos almacenados o invocaciones de funciones definidas por el usuario.
Si en la siguiente tabla aparece más de un tipo de datos Java, el primer tipo de datos es el recomendado.
| Tipo de datos Java | Tipo de datos de JDBC | Tipo de datos SQL1 |
|---|---|---|
| booleano2, java.lang.Boolean | BIT | SMALLINT |
| byte2, java.lang.Byte | TINYINT | SMALLINT |
| short, java.lang.Short | SMALLINT | SMALLINT |
| int, java.lang.Integer | ENTERO | ENTERO |
| long, java.lang.Long | BIGINT | BIGINT 6 |
| float, java.lang.Float | REAL | REAL |
| float, java.lang.Float | FLOAT | REAL |
| double, java.lang.Double | DOUBLE | doble |
| java.math.BigDecimal | DECIMAL | DECIMAL |
| java.math.BigDecimal | java.types.OTHER | DESFLOTA n.º 3 |
| java.math.BigDecimal | com.ibm.db2.jcc.DB2Types.DECFLOAT | DESFLOTA n.º 3 |
| java.lang.String | CHAR | CHAR |
| java.lang.String | CHAR | GRAPHIC |
| java.lang.String | VARCHAR | VARCHAR |
| java.lang.String | VARCHAR | VARGRAPHIC |
| java.lang.String | LONGVARCHAR | VARCHAR |
| java.lang.String | VARCHAR | CLOB |
| java.lang.String | LONGVARCHAR | CLOB |
| java.lang.String | CLOB | CLOB |
| byte[] | BINARY | CHAR FOR BIT DATA |
| byte[] | VARBINARY | VARCHAR FOR BIT DATA |
| byte[] | BINARY | BINARIO5 |
| byte[] | VARBINARY | VARBINARIO5 |
| byte[] | LONGVARBINARY | VARCHAR FOR BIT DATA |
| byte[] | VARBINARY | BLOB 4 |
| byte[] | LONGVARBINARY | BLOB 4 |
| java.sql.Date | FECHA | FECHA |
| java.sql.Time | HORA | Hora |
| java.sql.Timestamp | TIMESTAMP | TIMESTAMP, TIMESTAMP( p ), TIMESTAMP CON ZONA HORARIA, TIMESTAMP( p ) CON ZONA HORARIA 7, 8 |
| java.sql.Blob | BLOB | BLOB |
| java.sql.Clob | CLOB | CLOB |
| java.sql.Clob | CLOB | DBCLOB |
| java.io.ByteArrayInputStream | Ninguno | BLOB |
| java.io.StringReader | Ninguno | CLOB |
| java.io.ByteArrayInputStream | Ninguno | CLOB |
| ecom.ibm.db2.jcc.DB2RowID (en desuso) | com.ibm.db2.jcc.DB2Types.ROWID | ROWID |
| java.sql.RowId | java.sql.Types.ROWID | ROWID |
| java.sql.SQLXML | java.sql.Types.SQLXML | XML |
| java.sql.ResultSet | com.ibm.db2.jcc.DB2Types.CURSOR | Tipo de cursor |
Notas:
|
||
Tipos de datos en procedimientos almacenados de Java y funciones definidas por el usuario
La siguiente tabla resume las asignaciones de los tipos de datos de parámetros SQL en una instrucción CREATE PROCEDURE o CREATE FUNCTION a los tipos de datos en el correspondiente procedimiento almacenado Java o método de función definida por el usuario.
Para Db2 en sistemas Linux, UNIX y Windows, si se enumera más de un tipo de datos Java para un tipo de datos SQL, solo es válido el primer tipo de datos Java.
Para Db2 for z/OS, si se indica más de un tipo de datos Java y utiliza un tipo de datos distinto del primero como parámetro de método, debe incluir una firma de método en la cláusula EXTERNAL de la instrucción CREATE PROCEDURE o CREATE FUNCTION que especifique los tipos de datos Java de los parámetros de método.
| Tipo de datos SQL en CREATE PROCEDURE o CREATE FUNCTION1 | Tipo de datos en el procedimiento almacenado de Java o método de función definida por el usuario 2 |
|---|---|
| SMALLINT | short, java.lang.Integer |
| ENTERO | int, java.lang.Integer |
| MAYÚSCULA3 | long, java.lang.Long |
| REAL | float, java.lang.Float |
| doble | double, java.lang.Double |
| DECIMAL | java.math.BigDecimal |
| DECFLOAT4 | java.math.BigDecimal |
| CHAR | java.lang.String |
| VARCHAR | java.lang.String |
| CHAR FOR BIT DATA | byte[] |
| VARCHAR FOR BIT DATA | byte[] |
| BINARIO5 | byte[] |
| VARBINARIO5 | byte[] |
| FECHA | java.sql.Date |
| Hora | java.sql.Time |
| TIMESTAMP, TIMESTAMP( p ), TIMESTAMP CON ZONA HORARIA, TIMESTAMP( p ) CON ZONA HORARIA 6, 7 | java.sql.Timestamp |
| BLOB | java.sql.Blob |
| CLOB | java.sql.Clob |
| DBCLOB | java.sql.Clob |
| ROWID | java.sql.Types.ROWID |
Notas:
|
|