기본 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