Datentypen, die Datenbankdatentypen in Java-Anwendungen zugeordnet werden
Um effiziente JDBC-und SQLJ-Programme zu schreiben, müssen Sie die besten Zuordnungen zwischen Java™-Datentypen und Datentypen der Tabellenspalte verwenden.
In den folgenden Tabellen sind die Zuordnungen von Java-Datentypen zu JDBC-und Datenbankdatentypen für ein Db2 auf Linux-, UNIX-und Windows-Systemen -, Db2 for z/OS-oder IBM® Informix -System zusammengefasst.
Datentypen für die Aktualisierung von Tabellenspalten
In der folgenden Tabelle sind die Zuordnungen von Java-Datentypen zu Datenbankdatentypen für die Methoden PreparedStatement.setXXX oder ResultSet.updateXXX in JDBC-Programmen und für Eingabehostausdrücke in SQLJ-Programmen zusammengefasst. Wenn mehr als ein Java-Datentyp aufgelistet wird, ist der erste Datentyp der empfohlene Datentyp.
| Java-Datentyp | Datenbankdatentyp |
|---|---|
| short, java.lang.Short | SMALLINT |
| boolean 1 , Byte 1 , java.lang.Boolean, java.lang.Byte | SMALLINT |
| int, java.lang.Integer | INTEGER |
| long, java.lang.Long | BIGINT 12 |
| java.math.BigInteger | BIGINT 11 |
| java.math.BigInteger | CHAR (n) 11, 5 |
| float, java.lang.Float | REAL |
| double, java.lang.Double | DOUBLE |
| java.math.BigDecimal | DECIMAL (p, s) 2 |
| java.math.BigDecimal | DECFLOAT (n) 3, 4 |
| java.lang.String | CHAR (n) 5 |
| java.lang.String | GRAPHIC (m) 6 |
| java.lang.String | VARCHAR (n) 7 |
| java.lang.String | VARGRAPHIC (m) 8 |
| java.lang.String | CLOB 9 |
| java.lang.String | XML 10 |
| byte [] | CHAR (n) FOR BIT DATA 5 |
| byte [] | VARCHAR (n) FOR BIT DATA 7 |
| byte [] | BINARY (n) 5, 13 |
| byte [] | VARBINARY (n) 7, 13 |
| byte [] | BLOB 9 |
| byte [] | ROWID |
| byte [] | XML 10 |
| java.sql.Blob | BLOB |
| java.sql.Blob | XML 10 |
| java.sql.Clob | CLOB |
| java.sql.Clob | DBCLOB 9 |
| java.sql.Clob | XML 10 |
| java.sql.Date | DATUM |
| java.sql.Time | ZEIT |
| java.sql.Timestamp | TIMESTAMP, TIMESTAMP (p), TIMESTAMP WITH TIME ZONE, TIMESTAMP (p) WITH TIME ZONE 14, 15 |
| java.io.ByteArrayInputStream | BLOB |
| java.io.StringReader | CLOB |
| java.io.ByteArrayInputStream | CLOB |
| java.io.InputStream | XML 10 |
| com.ibm.db2.jcc.DB2RowID (nicht weiter unterstützt) | ROWID |
| java.sql.RowId | ROWID |
| com.ibm.db2.jcc.DB2Xml (nicht weiter unterstützt) | XML 10 |
| java.sql.SQLXML | XML 10 |
| java.util.Date | CHAR (n) 11, 5 |
| java.util.Date | VARCHAR (n) 11, 5 |
| java.util.Date | DATUM 11 |
| java.util.Date | Zeit 11 |
| java.util.Date | TIMESTAMP, TIMESTAMP (p), TIMESTAMP WITH TIME ZONE, TIMESTAMP (p) WITH TIME ZONE 11, 14, 15 |
| java.util.Calendar | CHAR (n) 11, 5 |
| java.util.Calendar | VARCHAR (n) 11, 5 |
| java.util.Calendar | DATUM 11 |
| java.util.Calendar | Zeit 11 |
| java.util.Calendar | TIMESTAMP, TIMESTAMP (p), TIMESTAMP WITH TIME ZONE, TIMESTAMP (p) WITH TIME ZONE 11, 14, 15 |
| Hinweise:
|
|
Datentypen für das Abrufen aus Tabellenspalten
Die folgende Tabelle enthält eine Zusammenfassung der Zuordnungen von Db2-oder IBM Informix -Datentypen zu Java-Datentypen für ResultSet.getXXX -Methoden in JDBC-Programmen und für Iteratoren in SQLJ-Programmen. In dieser Tabelle werden keine numerischen Java-Wrapperobjekttypen aufgelistet, die mit ResultSet.getObject abgerufen werden.
| SQL-Datentyp | Empfohlener Java-Datentyp oder Java-Objekttyp | Andere unterstützte Java-Datentypen |
|---|---|---|
| SMALLINT | kurz | byte, int, long, float, double, java.math.BigDecimal, boolean, java.lang.String |
| INTEGER | int | short, byte, long, float, double, java.math.BigDecimal, boolean, java.lang.String |
| BIGINT 5 | long | int, short, byte, float, double, java.math.BigDecimal, boolean, java.lang.String |
| DECIMAL (p, s) oder NUMERIC (p, s) | java.math.BigDecimal | long, int, short, byte, float, double, boolean, java.lang.String |
| DECFLOAT (n) 1, 2 | java.math.BigDecimal | long, int, short, byte, float, double, java.math.BigDecimal, boolean, java.lang.String |
| REAL | float | long, int, short, byte, double, java.math.BigDecimal, boolean, java.lang.String |
| DOUBLE | doppelt | long, int, short, byte, float, java.math.BigDecimal, boolean, java.lang.String |
| 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 |
| VARCHAR (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 |
| CHAR (n) FOR BIT DATA | byte [] | java.lang.String, java.io.InputStream, java.io.Reader |
| VARCHAR (n) FOR BIT DATA | byte [] | java.lang.String, java.io.InputStream, java.io.Reader |
| BINARY (n) 6 | byte [] | Keine |
| VARBINARY (n) 6 | byte [] | Keine |
| GRAPHIC (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 |
| VARGRAPHIC (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 |
| BLOB (n) | java.sql.Blob | byte [] 3 |
| DBCLOB (m) | Keine exakte Entsprechung. Verwenden Sie java.sql.Clob. | |
| ROWID | java.sql.RowId | byte [], com.ibm.db2.jcc.DB2RowID (nicht weiter unterstützt) |
| XML 4 | java.sql.SQLXML | byte [], java.lang.String, java.io.InputStream, java.io.Reader |
| DATUM | java.sql.Date | java.sql.String, java.sql.Timestamp |
| ZEIT | java.sql.Time | java.sql.String, java.sql.Timestamp |
| TIMESTAMP, TIMESTAMP (p), TIMESTAMP WITH TIME ZONE, TIMESTAMP (p) WITH TIME ZONE 7, 8 | java.sql.Timestamp | java.sql.String, java.sql.Date, java.sql.Time, java.sql.Timestamp |
| Hinweise:
|
||
Datentypen zum Aufrufen gespeicherter Prozeduren und benutzerdefinierter Funktionen
Die folgende Tabelle enthält eine Zusammenfassung der Zuordnungen von Java-Datentypen zu JDBC-Datentypen und Db2-oder IBM Informix -Datentypen zum Aufrufen benutzerdefinierter Funktionen und Parameter für gespeicherte Prozeduren. Die Zuordnungen von Java-Datentypen zu JDBC-Datentypen werden für CallableStatement.registerOutParameter -Methoden in JDBC-Programmen verwendet. Die Zuordnungen von Java-Datentypen zu Datenbankserverdatentypen sind für Parameter in gespeicherten Prozeduren oder für benutzerdefinierte Funktionsaufrufe bestimmt.
Wenn mehr als ein Java-Datentyp in der folgenden Tabelle aufgelistet ist, ist der erste Datentyp der empfohlene Datentyp.
| Java-Datentyp | JDBC-Datentyp | SQL-Datentyp |
|---|---|---|
| boolean 3 , java.lang.Boolean | BOOLEAN | BOOLEAN 1, 2 |
| boolean 3 , java.lang.Boolean | BIT | SMALLINT |
| Byte 3 , java.lang.Byte | TINYINT | SMALLINT |
| short, java.lang.Short | SMALLINT | SMALLINT |
| int, java.lang.Integer | INTEGER | INTEGER |
| long, java.lang.Long | BIGINT | BIGINT 7 |
| float, java.lang.Float | REAL | REAL |
| float, java.lang.Float | FLOAT | REAL |
| double, java.lang.Double | DOUBLE | DOUBLE |
| java.math.BigDecimal | NUMERISCH | DEZIMAL |
| java.math.BigDecimal | DEZIMAL | DEZIMAL |
| java.math.BigDecimal | java.types.OTHER | DECFLOAT n 4 |
| java.math.BigDecimal | com.ibm.db2.jcc.DB2Types.DECFLOAT | DECFLOAT n 4 |
| java.lang.String | ZCHN | ZCHN |
| java.lang.String | ZCHN | 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 | BINARY 6 |
| byte [] | VARBINARY | VARBINARY 6 |
| byte [] | LONGVARBINARY | VARCHAR FOR BIT DATA |
| byte [] | VARBINARY | BLOB 5 |
| byte [] | LONGVARBINARY | BLOB 5 |
| java.sql.Date | DATUM | DATUM |
| java.sql.Time | ZEIT | ZEIT |
| java.sql.Timestamp | TIMESTAMP | TIMESTAMP, TIMESTAMP (p), TIMESTAMP WITH TIME ZONE, TIMESTAMP (p) WITH TIME ZONE 8, 9 |
| java.sql.Blob | BLOB | BLOB |
| java.sql.Clob | CLOB | CLOB |
| java.sql.Clob | CLOB | DBCLOB |
| java.io.ByteArrayInputStream | Keine | BLOB |
| java.io.StringReader | Keine | CLOB |
| java.io.ByteArrayInputStream | Keine | CLOB |
| com.ibm.db2.jcc.DB2RowID (nicht weiter unterstützt) | com.ibm.db2.jcc.DB2Types.ROWID | ROWID |
| java.sql.RowId | java.sql.Types.ROWID | ROWID |
| com.ibm.db2.jcc.DB2Xml (nicht weiter unterstützt) | com.ibm.db2.jcc.DB2Types.XML | XML-AS-CLOB |
| java.sql.SQLXML | java.sql.Types.SQLXML | XML |
| java.sql.SQLXML | java.sql.Types.SQLXML | XML-AS-CLOB |
| java.sql.Array | java.sql.Types.ARRAY | ARRAY 2 |
| java.sql.Struct | java.sql.Types.STRUCT | ROW 1, 2 |
| java.sql.ResultSet | com.ibm.db2.jcc.DB2Types.CURSOR | CURSOR-Typ 2 |
Hinweise:
|
||
Datentypen in gespeicherten Prozeduren von Java und benutzerdefinierte Funktionen
In der folgenden Tabelle sind die Zuordnungen der SQL-Parameterdatentypen in einer Anweisung CREATE PROCEDURE oder CREATE FUNCTION für die Datentypen in der entsprechenden gespeicherten Java-Prozedur oder in der benutzerdefinierten Funktion zusammengefasst.
Wenn für Db2 auf Linux-, UNIX-und Windows-Systemen mehr als ein Java-Datentyp für einen SQL-Datentyp aufgelistet wird, ist nur der Datentyp first Java gültig.
Wenn für Db2 for z/OS mehr als ein Java-Datentyp aufgelistet wird und Sie einen anderen Datentyp als den ersten Datentyp als Methodenparameter verwenden, müssen Sie eine Methodensignatur in die Klausel EXTERNAL Ihrer Anweisung CREATE PROCEDURE oder CREATE FUNCTION einfügen, die die Java-Datentypen der Methodenparameter angibt.
| SQL-Datentyp in CREATE PROCEDURE oder CREATE FUNCTION | Datentyp in Java gespeicherter Prozedur oder benutzerdefinierter Funktionsmethode 2 |
|---|---|
| SMALLINT | short, java.lang.Integer |
| BOOLEAN 1 | boolesch |
| INTEGER | int, java.lang.Integer |
| BIGINT 3 | long, java.lang.Long |
| REAL | float, java.lang.Float |
| DOUBLE | double, java.lang.Double |
| DEZIMAL | java.math.BigDecimal |
| DECFLOAT 4 | java.math.BigDecimal |
| ZCHN | java.lang.String |
| VARCHAR | java.lang.String |
| CHAR FOR BIT DATA | byte [] |
| VARCHAR FOR BIT DATA | byte [] |
| BINARY 5 | byte [] |
| VARBINARY 5 | byte [] |
| DATUM | java.sql.Date |
| ZEIT | java.sql.Time |
| TIMESTAMP, TIMESTAMP (p), TIMESTAMP WITH TIME ZONE, TIMESTAMP (p) WITH TIME ZONE 6, 7 | java.sql.Timestamp |
| BLOB | java.sql.Blob |
| CLOB | java.sql.Clob |
| DBCLOB | java.sql.Clob |
| ROWID | java.sql.Types.ROWID |
| ARRAY 1 | java.sql.Array |
| ROW 1 | java.sql.Struct |
| XML-AS-CLOB | java.sql.Types.SQLXML |
| Hinweise:
|
|