Java アプリケーションでデータベース・データ・タイプにマップするデータ・タイプ
効率的な JDBC および SQLJ プログラムを作成するには、Java™ データ・タイプと表列データ・タイプの間の最適なマッピングを使用する必要があります。
以下の表は、 Linux®、UNIX、および Windows システム上の Db2®、 Db2 for z/OS®、または IBM® Informix® システムの JDBC およびデータベース・データ・タイプへの Java データ・タイプのマッピングを要約しています。
表列を更新するためのデータ・タイプ
次の表は、 PreparedStatement.setXXX または ResultSet.updateXXX JDBC プログラムのメソッド、および SQLJ プログラムの入力ホスト式のデータベース・データ・タイプへの Java データ・タイプのマッピングを要約しています。 複数の Java データ・タイプがリストされている場合、最初のデータ・タイプが推奨されるデータ・タイプです。
Java データ型 | データベース・データ・タイプ |
---|---|
short、java.lang.Short | SMALLINT |
boolean1、バイト1、 java.lang.Boolean、 java.lang.Byte | SMALLINT |
int、java.lang.Integer | INTEGER |
long、java.lang.Long | 大桁整数 (BIGINT) 型13 |
java.math.BigInteger | 大桁整数 (BIGINT) 型12 |
java.math.BigInteger | CHAR (n)12、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 | CLOB9 |
java.lang.String | XML11 |
byte[] | CHAR (n) ビット・データ用5 |
byte[] | VARCHAR (n) ビット・データ用7 |
byte[] | BINARY (n)5、 14 |
byte[] | VARBINARY (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 | 日数 |
java.sql.Time | 時間 |
java.sql.Timestamp | TIMESTAMP、TIMESTAMP (p)、TIMESTAMP WITH TIME ZONE、TIMESTAMP (p) WITH TIME ZONE15、16 |
java.io.ByteArrayInputStream | BLOB |
java.io.StringReader | CLOB |
java.io.ByteArrayInputStream | CLOB |
java.io.InputStream | XML11 |
com.ibm.db2.jcc.DB2RowID (非推奨) | ROWID |
java.sql.RowId | ROWID |
com.ibm.db2.jcc.DB2Xml (非推奨) | XML11 |
java.sql.SQLXML | XML11 |
java.util.Date | CHAR (n)12、5 |
java.util.Date | VARCHAR (n)12、5 |
java.util.Date | 日付12 |
java.util.Date | 時刻12 |
java.util.Date | TIMESTAMP、TIMESTAMP (p)、TIMESTAMP WITH TIME ZONE、TIMESTAMP (p) WITH TIME ZONE12、15、16 |
java.util.Calendar | CHAR (n)12、5 |
java.util.Calendar | VARCHAR (n)12、5 |
java.util.Calendar | 日付12 |
java.util.Calendar | 時刻12 |
java.util.Calendar | TIMESTAMP、TIMESTAMP (p)、TIMESTAMP WITH TIME ZONE、TIMESTAMP (p) WITH TIME ZONE12、15、16 |
注:
|
表列を検索するためのデータ・タイプ
以下の表は、 Db2 または IBM Informix データ・タイプから、 JDBC プログラムの ResultSet.getXXX メソッドおよび SQLJ プログラムのイテレーターの Java データ・タイプへのマッピングを要約したものです。 この表には、 ResultSet.getObjectを使用して取得される Java 数値ラッパー・オブジェクト・タイプはリストされていません。
SQL データ・タイプ | 推奨される Java データ型または Java オブジェクト型 | その他のサポートされる Java データ型 |
---|---|---|
SMALLINT | short | 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) 型6 | long | int、short、byte、float、double、 java.math.BigDecimal、boolean、 java.lang.String |
DECIMAL(p,s) または 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 | 浮動小数点 | long、int、short、byte、double、 java.math.BigDecimal、boolean、 java.lang.String |
DOUBLE | double | 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) (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) | byte[] | java.lang.String, java.io.InputStream, java.io.Reader |
VARCHAR (n) ビット・データ用 | byte[] | java.lang.String, java.io.InputStream, java.io.Reader |
BINARY (n)7 | byte[] | なし |
VARBINARY (n)7 | byte[] | なし |
GRAPHIC (分) | 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) (CLOB (n)) | java.sql.Clob | java.lang.String |
BLOB (n) | java.sql.Blob | byte []3 |
DBCLOB (m) | 完全に同等のものはありません。5 | |
ROWID | java.sql.RowId | byte[]、com.ibm.db2.jcc.DB2RowID (非推奨) |
XML4 | java.sql.SQLXML | byte[]、java.lang.String、 java.io.InputStream、java.io.Reader |
日数 | java.sql.Date | java.sql.String, java.sql.Timestamp |
時間 | java.sql.Time | java.sql.String, java.sql.Timestamp |
TIMESTAMP、TIMESTAMP (p)、TIMESTAMP WITH TIME ZONE、TIMESTAMP (p) WITH TIME ZONE8、9 | java.sql.Timestamp | java.sql.String, java.sql.Date, java.sql.Time, java.sql.Timestamp |
注:
|
ストアード・プロシージャーおよびユーザー定義関数を呼び出すためのデータ・タイプ
次の表は、Java データ・タイプから JDBC データ・タイプへのマッピングと、ユーザー定義関数およびストアード・プロシージャー・パラメーターを呼び出すための Db2 または IBM Informix データ・タイプへのマッピングを要約したものです。 Java データ型から JDBC データ型へのマッピングは、 JDBC プログラムの CallableStatement.registerOutParameter メソッド用です。 Java データ・タイプからデータ・サーバー・データ・タイプへのマッピングは、ストアード・プロシージャーまたはユーザー定義関数の呼び出しのパラメーター用です。
以下の表に複数の Java データ型がリストされている場合、最初のデータ型が 推奨される データ型です。
Java データ型 | JDBC データ・タイプ | SQL データ・タイプ |
---|---|---|
boolean3、 java.lang.Boolean | BOOLEAN | BOOLEAN1、2 |
boolean3、 java.lang.Boolean | BIT | SMALLINT |
バイト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 | NUMERIC | DECIMAL |
java.math.BigDecimal | DECIMAL | DECIMAL |
java.math.BigDecimal | java.types.OTHER | DECFLOATn4 |
java.math.BigDecimal | com.ibm.db2.jcc.DB2Types.DECFLOAT | DECFLOATn4 |
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 | BINARY6 |
byte[] | VARBINARY | VARBINARY6 |
byte[] | LONGVARBINARY | VARCHAR FOR BIT DATA |
byte[] | VARBINARY | BLOB5 |
byte[] | LONGVARBINARY | BLOB5 |
java.sql.Date | 日数 | 日数 |
java.sql.Time | 時刻 | 時間 |
java.sql.Timestamp | TIMESTAMP | TIMESTAMP、TIMESTAMP (p)、TIMESTAMP WITH TIME ZONE、TIMESTAMP (p) WITH TIME ZONE8、9 |
java.sql.Blob | BLOB | BLOB |
java.sql.Clob | CLOB | CLOB |
java.sql.Clob | CLOB | DBCLOB |
java.io.ByteArrayInputStream | なし | BLOB |
java.io.StringReader | なし | CLOB |
java.io.ByteArrayInputStream | なし | CLOB |
com.ibm.db2.jcc.DB2RowID (非推奨) | com.ibm.db2.jcc.DB2Types.ROWID | ROWID |
java.sql.RowId | java.sql.Types.ROWID | ROWID |
com.ibm.db2.jcc.DB2Xml (非推奨) | 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 | 配列2 |
java.sql.Struct | java.sql.Types.STRUCT | ROW1、2 |
java.sql.ResultSet | com.ibm.db2.jcc.DB2Types.CURSOR | CURSOR タイプ2 |
注:
|
Java ストアード・プロシージャーおよびユーザー定義関数のデータ・タイプ
次の表は、CREATE PROCEDURE または CREATE FUNCTION ステートメント内の SQL パラメーター・データ・タイプと、対応する Java ストアード・プロシージャーまたはユーザー定義関数メソッド内のデータ・タイプとのマッピングを要約したものです。
Linux、UNIX、および Windows システム上の Db2では、1 つの SQL データ・タイプに対して複数の Java データ・タイプがリストされている場合、 最初 Java データ・タイプのみが有効です。
Db2 for z/OSでは、複数の Java データ・タイプがリストされ、最初のデータ・タイプ以外のデータ・タイプをメソッド・パラメーターとして使用する場合、メソッド・パラメーターの Java データ・タイプを指定する CREATE PROCEDURE または CREATE FUNCTION ステートメントの EXTERNAL 節にメソッド・シグニチャーを組み込む必要があります。
CREATE PROCEDURE または CREATE FUNCTION での SQL データ・タイプ | Java ストアード・プロシージャーまたはユーザー定義関数メソッドのデータ・タイプ2 |
---|---|
SMALLINT | short、java.lang.Integer |
ブール値1 | ブール |
INTEGER | int、java.lang.Integer |
大桁整数 (BIGINT) 型3 | long、java.lang.Long |
REAL | float、java.lang.Float |
DOUBLE | 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[] |
BINARY5 | byte[] |
VARBINARY5 | byte[] |
日数 | java.sql.Date |
時間 | java.sql.Time |
TIMESTAMP、TIMESTAMP (p)、TIMESTAMP WITH TIME ZONE、TIMESTAMP (p) WITH TIME ZONE6、7 | java.sql.Timestamp |
BLOB | java.sql.Blob |
CLOB | java.sql.Clob |
DBCLOB | java.sql.Clob |
ROWID | java.sql.Types.ROWID |
配列1 | java.sql.Array |
行1 | java.sql.Struct |
XML AS CLOB | java.sql.Types.SQLXML |
注:
|