기본 Java 타입과 DB 필드 매핑
본 부록에서는 JEUS 특징인 Java 필드 종류와 JEUS에서 지원하는 주요 DB 벤더의 DB 컬럼 종류와의 기본 매핑을 설명한다.
1. 개요
이 기본 매핑은 CMP Bean의 <schema-info><cm-field><type>이 jeus-ejb-dd.xml에 지정되어 있지 않을 때 사용한다. 이런 경우에는 EJB 시스템은 Bean의 CMP 필드 중 Java 필드를 검색하여 Java 타입을 얻어 오고 <type>은 다음의 각 절에 나오는 기본 매핑에 지정된 것과 같다고 여긴다.
다음의 테이블에서는 3가지의 컬럼들을 보여주고 있다.
-
Java 필드 타입
검색을 통해 발견된 EJB CMP 필드의 종류
-
SQL 타입
java.sql.Types 클래스에서 정의된 일반적인 SQL 종류
-
DB 컬럼 타입
발견된 Java 필드 종류에 기반하여 새로운 테이블을 생성할 때 JEUS가 사용할 DB 컬럼 종류의 이름
2. Tibero 필드 - 컬럼 타입 매핑
다음은 Tibero를 위한 EJB CMP 필드와 DB 컬럼 타입 매핑 정보이다.
Java 필드 타입 | SQL 타입(java.sql.Types) | Tibero DB 컬럼 타입 |
---|---|---|
java.lang.String |
VARCHAR |
VARCHAR(255) |
java.math.BigDecimal |
NUMERIC |
NUMERIC(15,5) |
java.lang.Boolean |
BIT |
SMALLINT |
Boolean |
BIT |
SMALLINT |
java.lang.Byte |
TINYINT |
SMALLINT |
Byte |
TINYINT |
SMALLINT |
java.lang.Character |
CHAR |
CHAR(4) |
Char |
CHAR |
CHAR(4) |
java.lang.Short |
SMALLINT |
SMALLINT |
Short |
SMALLINT |
SMALLINT |
java.lang.Integer |
INTEGER |
INTEGER |
Int |
INTEGER |
INTEGER |
java.lang.Long |
BIGINT |
NUMERIC(22,0) |
Long |
BIGINT |
NUMERIC(22,0) |
java.lang.Float |
REAL |
REAL |
Float |
REAL |
REAL |
java.lang.Double |
DOUBLE |
DOUBLE PRECISION |
Double |
DOUBLE |
DOUBLE PRECISION |
byte[] |
LONGVARBINARY |
LONG RAW |
java.sql.Date |
DATE |
DATE |
java.sql.Time |
TIME |
DATE |
java.sql.Timestamp |
TIMESTAMP |
DATE |
<Java object> |
JAVA OBJECT |
LONG RAW |
3. Oracle 필드 - 컬럼 타입 매핑
다음은 Oracle를 위한 EJB CMP 필드와 DB 컬럼 타입 매핑 정보이다.
Java 필드 타입 | SQL 타입(java.sql.Types) | Oracle DB 컬럼 타입 |
---|---|---|
java.lang.String |
VARCHAR |
VARCHAR(255) |
java.math.BigDecimal |
NUMERIC |
NUMERIC(15,5) |
java.lang.Boolean |
BIT |
SMALLINT |
Boolean |
BIT |
SMALLINT |
java.lang.Byte |
TINYINT |
SMALLINT |
Byte |
TINYINT |
SMALLINT |
java.lang.Character |
CHAR |
CHAR(4) |
Char |
CHAR |
CHAR(4) |
java.lang.Short |
SMALLINT |
SMALLINT |
Short |
SMALLINT |
SMALLINT |
java.lang.Integer |
INTEGER |
INTEGER |
Int |
INTEGER |
INTEGER |
java.lang.Long |
BIGINT |
NUMERIC(22,0) |
Long |
BIGINT |
NUMERIC(22,0) |
java.lang.Float |
REAL |
REAL |
Float |
REAL |
REAL |
java.lang.Double |
DOUBLE |
DOUBLE PRECISION |
Double |
DOUBLE |
DOUBLE PRECISION |
byte[] |
LONGVARBINARY |
LONG RAW |
java.sql.Date |
DATE |
DATE |
java.sql.Time |
TIME |
DATE |
java.sql.Timestamp |
TIMESTAMP |
DATE |
<Java object> |
JAVA OBJECT |
LONG RAW |
4. Sybase 필드 - 컬럼 타입 매핑
다음은 Sybase를 위한 EJB CMP 필드와 DB 컬럼 타입 매핑 정보이다.
Java 필드 타입 | SQL 타입(java.sql.Types) | Sybase DB 컬럼 타입 |
---|---|---|
java.lang.String |
VARCHAR |
VARCHAR(255) |
java.math.BigDecimal |
NUMERIC |
NUMERIC(15,5) |
java.lang.Boolean |
BIT |
BIT |
Boolean |
BIT |
BIT |
java.lang.Byte |
TINYINT |
TINYINT |
Byte |
TINYINT |
TINYLINT |
java.lang.Character |
CHAR |
CHAR(4) |
Char |
CHAR |
CHAR(4) |
java.lang.Short |
SMALLINT |
SMALLINT |
Short |
SMALLINT |
SMALLINT |
java.lang.Integer |
INTEGER |
INT |
Int |
INTEGER |
INT |
java.lang.Long |
BIGINT |
NUMERIC(22,0) |
Long |
BIGINT |
NUMERIC(22,0) |
java.lang.Float |
REAL |
REAL |
Float |
REAL |
REAL |
java.lang.Double |
DOUBLE |
DOUBLE PRECISION |
Double |
DOUBLE |
DOUBLE PRECISION |
byte[] |
LONGVARBINARY |
IMAGE |
java.sql.Date |
DATE |
DATETIME |
java.sql.Time |
TIME |
DATETIME |
java.sql.Timestamp |
TIMESTAMP |
Not spported |
<Java object> |
JAVA OBJECT |
IMAGE |
5. MSSQL 필드 - 컬럼 타입 매핑
다음은 MSSQL을 위한 EJB CMP 필드와 DB 컬럼 타입 매핑 정보이다.
Java 필드 타입 | SQL 타입(java.sql.Types) | MSSQL DB 컬럼 타입 |
---|---|---|
java.lang.String |
VARCHAR |
VARCHAR(255) |
java.math.BigDecimal |
NUMERIC |
NUMERIC(15,5) |
java.lang.Boolean |
BIT |
BIT |
Boolean |
BIT |
BIT |
java.lang.Byte |
TINYINT |
TINYINT |
Byte |
TINYINT |
TINYINT |
java.lang.Character |
CHAR |
CHAR(4) |
Char |
CHAR |
CHAR(4) |
java.lang.Short |
SMALLINT |
SMALLINT |
Short |
SMALLINT |
SMALLINT |
java.lang.Integer |
INTEGER |
INT |
Int |
INTEGER |
INT |
java.lang.Long |
BIGINT |
NUMERIC(22,0) |
Long |
BIGINT |
NUMERIC(22,0) |
java.lang.Float |
REAL |
REAL |
Float |
REAL |
REAL |
java.lang.Double |
DOUBLE |
FLOAT |
Double |
DOUBLE |
FLOAT |
byte[] |
LONGVARBINARY |
IMAGE |
java.sql.Date |
DATE |
DATETIME |
java.sql.Time |
TIME |
DATETIME |
java.sql.Timestamp |
TIMESTAMP |
DATETIME |
<Java object> |
JAVA OBJECT |
IMAGE |
6. DB2 필드 - 컬럼 타입 매핑
다음은 DB2를 위한 EJB CMP 필드와 DB 컬럼 타입 매핑 정보이다.
Java 필드 타입 | SQL 타입(java.sql.Types) | DB2 DB 컬럼 타입 |
---|---|---|
java.lang.String |
VARCHAR |
VARCHAR(255) |
java.math.BigDecimal |
NUMERIC |
NUMERIC(15,5) |
java.lang.Boolean |
BIT |
SMALLINT |
Boolean |
BIT |
SMALLINT |
java.lang.Byte |
TINYINT |
SMALLINT |
Byte |
TINYINT |
SMALLINT |
java.lang.Character |
CHAR |
CHARACTER(4) |
Char |
CHAR |
CHARACTER(4) |
java.lang.Short |
SMALLINT |
SMALLINT |
Short |
SMALLINT |
SMALLINT |
java.lang.Integer |
INTEGER |
INTEGER |
Int |
INTEGER |
INTEGER |
java.lang.Long |
BIGINT |
BIGINT |
Long |
BIGINT |
BIGINT |
java.lang.Float |
REAL |
REAL |
Float |
REAL |
REAL |
java.lang.Double |
DOUBLE |
DOUBLE |
Double |
DOUBLE |
DOUBLE |
byte[] |
LONGVARBINARY |
VARCHAR(255) |
java.sql.Date |
DATE |
DATE |
java.sql.Time |
TIME |
TIME |
java.sql.Timestamp |
TIMESTAMP |
TIMESTAMP |
<Java object> |
JAVA OBJECT |
LONG VARCHAR |
7. Cloudscape 필드 - 컬럼 타입 매핑
다음은 Cloudscape를 위한 EJB CMP 필드와 DB 컬럼 타입 매핑 정보이다.
Java 필드 타입 | SQL 타입(java.sql.Types) | Cloudscape DB 컬럼 타입 |
---|---|---|
java.lang.String |
VARCHAR |
VARCHAR(255) |
java.math.BigDecimal |
NUMERIC |
DECIMAL(15,5) |
java.lang.Boolean |
BIT |
BOOLEAN |
Boolean |
BIT |
BOOLEAN |
java.lang.Byte |
TINYINT |
TINYINT |
Byte |
TINYINT |
TINYINT |
java.lang.Character |
CHAR |
CHAR(4) |
Char |
CHAR |
CHAR(4) |
java.lang.Short |
SMALLINT |
SMALLINT |
Short |
SMALLINT |
SMALLINT |
java.lang.Integer |
INTEGER |
INTEGER |
Int |
INTEGER |
INTEGER |
java.lang.Long |
BIGINT |
LONGINT |
Long |
BIGINT |
LONGINT |
java.lang.Float |
REAL |
REAL |
Float |
REAL |
REAL |
java.lang.Double |
DOUBLE |
DOUBLE PRECISION |
Double |
DOUBLE |
DOUBLE PRECISION |
byte[] |
LONGVARBINARY |
LONG BIT VARYING |
java.sql.Date |
DATE |
DATE |
java.sql.Time |
TIME |
TIME |
java.sql.Timestamp |
TIMESTAMP |
TIMESTAMP |
<Java object> |
JAVA OBJECT |
LONG BIT VARYING |
8. Informix 필드 - 컬럼 타입 매핑
다음은 Informix를 위한 EJB CMP 필드와 DB 컬럼 타입 매핑 정보이다.
Java 필드 타입 | SQL 타입(java.sql.Types) | Informix DB 컬럼 타입 |
---|---|---|
java.lang.String |
VARCHAR |
VARCHAR(255) |
java.math.BigDecimal |
NUMERIC |
NUMERIC(15,5) |
java.lang.Boolean |
BIT |
VARCHAR |
Boolean |
BIT |
VARCHAR |
java.lang.Byte |
TINYINT |
SMALLINT |
Byte |
TINYINT |
SMALLINT |
java.lang.Character |
CHAR |
CHAR |
Char |
CHAR |
CHAR |
java.lang.Short |
SMALLINT |
SMALLINT |
Short |
SMALLINT |
SMALLINT |
java.lang.Integer |
INTEGER |
INTEGER |
Int |
INTEGER |
INTEGER |
java.lang.Long |
BIGINT |
SERIAL8 |
Long |
BIGINT |
SERIAL8 |
java.lang.Float |
REAL |
REAL |
Float |
REAL |
REAL |
java.lang.Double |
DOUBLE |
DOUBLE PRECISION |
Double |
DOUBLE |
DOUBLE PRECISION |
byte[] |
LONGVARBINARY |
VARCHAR(255) |
java.sql.Date |
DATE |
DATE |
java.sql.Time |
TIME |
DATETIME HOUR TO SECOND |
java.sql.Timestamp |
TIMESTAMP |
DATETIME YEAR TO SECOND |
<Java object> |
JAVA OBJECT |
BYTE |