Java 애플리케이션에서 데이터베이스 데이터 유형에 맵핑되는 데이터 유형
효율 JDBC 을 작성하려면 Java™ 데이터 유형과 테이블 컬럼 데이터 유형 간의 최상의 맵핑을 사용해야 합니다.
다음 표에서는 Linux®, UNIX및 Windows 시스템의 경우 Db2®, Db2 for z/OS®또는 IBM® Informix® 시스템의 JDBC 및 데이터베이스 데이터 유형에 대한 Java 데이터 유형의 맵핑을 요약합니다.
테이블 컬럼 갱신을 위한 데이터 유형
다음 표에는 JDBC 프로그램및 SQLJ 프로그램의 입력 호스트 표현식에 대한의 PreparedStatement.setXXX 또는 ResultSet.updateXXX 메소드에 대한 데이터베이스 데이터 유형에 대한 Java 데이터 유형의 맵핑이 요약되어 있습니다. Java 데이터 유형이 두 개 이상 나열되어 있는 경우, 첫 번째 데이터 유형이 권장 데이터 유형입니다.
| Java 데이터 유형 | 데이터베이스 데이터 유형 |
|---|---|
| short, java.lang.Short | SMALLINT |
| 부울1, 바이트1, java.lang.Boolean, java.lang.Byte | SMALLINT |
| int, java.lang.Integer | INTEGER |
| long, java.lang.Long | BIGINT13 |
| java.math.BigInteger | BIGINT12 |
| java.math.BigInteger | CHAR (n)12,5 |
| float, java.lang.Float | REAL |
| double, java.lang.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) FOR BIT DATA5 |
| byte[] | VARCHAR (n) FOR BIT DATA7 |
| 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 | 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) 과 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) 과 TIME ZONE12,15,16 |
주:
|
|
테이블 컬럼에서 검색하려는 데이터 유형
다음 표에는 JDBC 프로그램의 ResultSet.getXXX 메소드에 대한 Java 데이터 유형에 대한 Db2 또는 IBM Informix 데이터 유형과 SQLJ 프로그램의 반복자에 대한 맵핑이 요약되어 있습니다. 이 테이블에서는 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 |
| BIGINT6 | 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 | float | long, int, short, byte, double, java.math.BigDecimal, boolean, java.lang.String |
| 이중 | 이중 | 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)7 | byte[] | 없음 |
| VARBINARY (n)7 | byte[] | 없음 |
| 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) | 정확히 동일하지 않습니다.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 |
| DATE | 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 |
주:
|
||
스토어드 프로시저 및 사용자 정의 함수 호출을 위한 데이터 유형
다음 표에는 사용자 정의 함수 및 스토어드 프로시저 매개변수를 호출하기 위한 JDBC 데이터 유형 및 Db2 또는 IBM Informix 데이터 유형에 대한 Java 데이터 유형의 맵핑이 요약되어 있습니다. Java 데이터 유형 대 JDBC 데이터 유형의 맵핑은 JDBC 프로그램의 CallableStatement.registerOutParameter 메소드를 위한 것입니다. 데이터 서버 데이터 유형에 대한 자바 데이터 유형의 맵핑은 스토어드 프로시저 또는 사용자 정의 함수 호출의 매개변수에 대한 것입니다.
다음 표에 여러 개의 Java 데이터 유형이 나열되어 있는 경우 첫 번째 데이터 유형은 권장 데이터 유형입니다.
| Java 데이터 유형 | JDBC 데이터 유형 | SQL 데이터 유형 |
|---|---|---|
| 부울3, java.lang.Boolean | BOOLEAN | BOOLEAN1,2 |
| 부울3, 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 | BIGINT7 |
| float, java.lang.Float | REAL | REAL |
| float, java.lang.Float | FLOAT | REAL |
| double, java.lang.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 | DATE | DATE |
| java.sql.Time | 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 | ARRAY2 |
| java.sql.Struct | java.sql.Types.STRUCT | ROW1,2 |
| java.sql.ResultSet | com.ibm.db2.jcc.DB2Types.CURSOR | CURSOR 유형2 |
주:
|
||
자바 스토어드 프로시저 및 사용자 정의 함수의 데이터 유형
다음 표에서는 해당 자바 스토어드 프로시저 또는 사용자 정의 함수 메소드의 데이터 유형에 대한 CREATE PROCEDURE 또는 CREATE FUNCTION문의 SQL 매개변수 데이터 유형 맵핑을 요약한다.
Linux, UNIX및 Windows 시스템의 경우 Db2의 경우, 두 개 이상의 Java 데이터 유형이 SQL 데이터 유형에 대해 나열되는 경우 먼저 Java 데이터 유형만 유효합니다.
Db2 for z/OS의 경우, 둘 이상의 Java 데이터 유형이 나열되고 첫 번째 데이터 유형이 아닌 다른 데이터 유형을 메소드 매개변수로 사용하는 경우, 메소드 매개변수의 Java 데이터 유형을 지정하는 CREATE PROCEDURE 또는 CREATE FUNCTION문의 EXTERNAL절에 메소드 서명을 포함해야 합니다.
| CREATE PROCEDURE 또는 CREATE FUNCTION의 SQL 데이터 유형 | Java 스토어드 프로시저 또는 사용자 정의 함수 메소드의 데이터 유형2 |
|---|---|
| SMALLINT | short, java.lang.Integer |
| BOOLEAN1 | 부울 |
| INTEGER | int, java.lang.Integer |
| BIGINT3 | long, java.lang.Long |
| REAL | float, java.lang.Float |
| 이중 | 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[] |
| DATE | 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 |
| ARRAY1 | java.sql.Array |
| 행1 | java.sql.Struct |
| XML AS CLOB | java.sql.Types.SQLXML |
주:
|
|