Appendix A. 기본 Java 타입과 DB 필드 매핑

내용 목차

A.1. 개요
A.2. Tibero 필드 - 컬럼 타입 매핑
A.3. Oracle 필드 - 컬럼 타입 매핑
A.4. Sybase 필드 - 컬럼 타입 매핑
A.5. MSSQL 필드 - 컬럼 타입 매핑
A.6. DB2 필드 - 컬럼 타입 매핑
A.7. Cloudscape 필드 - 컬럼 타입 매핑
A.8. Informix 필드 - 컬럼 타입 매핑

본 부록에서는 JEUS 특징인 Java 필드 종류와 JEUS에서 지원하는 주요 DB 벤더의 DB 컬럼 종류와의 기본 매핑을 설명한다.

A.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 컬럼 종류의 이름

A.2. Tibero 필드 - 컬럼 타입 매핑

[표 A.1] Tibero를 위한 EJB CMP 필드 - DB 컬럼 타입 매핑

Java 필드 타입SQL 타입(java.sql.Types)Tibero DB 컬럼 타입
java.lang.StringVARCHARVARCHAR(255)
java.math.BigDecimalNUMERICNUMERIC(15,5)
java.lang.BooleanBITSMALLINT
BooleanBITSMALLINT
java.lang.ByteTINYINTSMALLINT
ByteTINYINTSMALLINT
java.lang.CharacterCHARCHAR(4)
CharCHARCHAR(4)
java.lang.ShortSMALLINTSMALLINT
ShortSMALLINTSMALLINT
java.lang.IntegerINTEGERINTEGER
IntINTEGERINTEGER
java.lang.LongBIGINTNUMERIC(22,0)
LongBIGINTNUMERIC(22,0)
java.lang.FloatREALREAL
FloatREALREAL
java.lang.DoubleDOUBLEDOUBLE PRECISION
DoubleDOUBLEDOUBLE PRECISION
byte[]LONGVARBINARYLONG RAW
java.sql.DateDATEDATE
java.sql.TimeTIMEDATE
java.sql.TimestampTIMESTAMPDATE
<Java object>JAVA OBJECTLONG RAW

A.3. Oracle 필드 - 컬럼 타입 매핑

[표 A.2] Oracle을 위한 EJB CMP 필드 - DB 컬럼 타입 매핑

Java 필드 타입SQL 타입(java.sql.Types)Oracle DB 컬럼 타입
java.lang.StringVARCHARVARCHAR(255)
java.math.BigDecimalNUMERICNUMERIC(15,5)
java.lang.BooleanBITSMALLINT
BooleanBITSMALLINT
java.lang.ByteTINYINTSMALLINT
ByteTINYINTSMALLINT
java.lang.CharacterCHARCHAR(4)
CharCHARCHAR(4)
java.lang.ShortSMALLINTSMALLINT
ShortSMALLINTSMALLINT
java.lang.IntegerINTEGERINTEGER
IntINTEGERINTEGER
java.lang.LongBIGINTNUMERIC(22,0)
LongBIGINTNUMERIC(22,0)
java.lang.FloatREALREAL
FloatREALREAL
java.lang.DoubleDOUBLEDOUBLE PRECISION
DoubleDOUBLEDOUBLE PRECISION
byte[]LONGVARBINARYLONG RAW
java.sql.DateDATEDATE
java.sql.TimeTIMEDATE
java.sql.TimestampTIMESTAMPDATE
<Java object>JAVA OBJECTLONG RAW

A.4. Sybase 필드 - 컬럼 타입 매핑

[표 A.3] Sybase를 위한 EJB CMP 필드 - DB 컬럼 타입 매핑

Java 필드 타입SQL 타입(java.sql.Types)Sybase DB 컬럼 타입
java.lang.StringVARCHARVARCHAR(255)
java.math.BigDecimalNUMERICNUMERIC(15,5)
java.lang.BooleanBITBIT
BooleanBITBIT
java.lang.ByteTINYINTTINYINT
ByteTINYINTTINYLINT
java.lang.CharacterCHARCHAR(4)
CharCHARCHAR(4)
java.lang.ShortSMALLINTSMALLINT
ShortSMALLINTSMALLINT
java.lang.IntegerINTEGERINT
IntINTEGERINT
java.lang.LongBIGINTNUMERIC(22,0)
LongBIGINTNUMERIC(22,0)
java.lang.FloatREALREAL
FloatREALREAL
java.lang.DoubleDOUBLEDOUBLE PRECISION
DoubleDOUBLEDOUBLE PRECISION
byte[]LONGVARBINARYIMAGE
java.sql.DateDATEDATETIME
java.sql.TimeTIMEDATETIME
java.sql.TimestampTIMESTAMPNot spported
<Java object>JAVA OBJECTIMAGE

A.5. MSSQL 필드 - 컬럼 타입 매핑

[표 A.4] MSSQL을 위한 EJB CMP 필드 - DB 컬럼 타입 매핑

Java 필드 타입SQL 타입(java.sql.Types)MSSQL DB 컬럼 타입
java.lang.StringVARCHARVARCHAR(255)
java.math.BigDecimalNUMERICNUMERIC(15,5)
java.lang.BooleanBITBIT
BooleanBITBIT
java.lang.ByteTINYINTTINYINT
ByteTINYINTTINYINT
java.lang.CharacterCHARCHAR(4)
CharCHARCHAR(4)
java.lang.ShortSMALLINTSMALLINT
ShortSMALLINTSMALLINT
java.lang.IntegerINTEGERINT
IntINTEGERINT
java.lang.LongBIGINTNUMERIC(22,0)
LongBIGINTNUMERIC(22,0)
java.lang.FloatREALREAL
FloatREALREAL
java.lang.DoubleDOUBLEFLOAT
DoubleDOUBLEFLOAT
byte[]LONGVARBINARYIMAGE
java.sql.DateDATEDATETIME
java.sql.TimeTIMEDATETIME
java.sql.TimestampTIMESTAMPDATETIME
<Java object>JAVA OBJECTIMAGE

A.6. DB2 필드 - 컬럼 타입 매핑

[표 A.5] DB2를 위한 EJB CMP 필드 - DB 컬럼 타입 매핑

Java 필드 타입SQL 타입(java.sql.Types)DB2 DB 컬럼 타입
java.lang.StringVARCHARVARCHAR(255)
java.math.BigDecimalNUMERICNUMERIC(15,5)
java.lang.BooleanBITSMALLINT
BooleanBITSMALLINT
java.lang.ByteTINYINTSMALLINT
ByteTINYINTSMALLINT
java.lang.CharacterCHARCHARACTER(4)
CharCHARCHARACTER(4)
java.lang.ShortSMALLINTSMALLINT
ShortSMALLINTSMALLINT
java.lang.IntegerINTEGERINTEGER
IntINTEGERINTEGER
java.lang.LongBIGINTBIGINT
LongBIGINTBIGINT
java.lang.FloatREALREAL
FloatREALREAL
java.lang.DoubleDOUBLEDOUBLE
DoubleDOUBLEDOUBLE
byte[]LONGVARBINARYVARCHAR(255)
java.sql.DateDATEDATE
java.sql.TimeTIMETIME
java.sql.TimestampTIMESTAMPTIMESTAMP
<Java object>JAVA OBJECTLONG VARCHAR

A.7. Cloudscape 필드 - 컬럼 타입 매핑

[표 A.6] Cloudscape를 위한 EJB CMP 필드 - DB 컬럼 타입 매핑

Java 필드 타입SQL 타입(java.sql.Types)Cloudscape DB 컬럼 타입
java.lang.StringVARCHARVARCHAR(255)
java.math.BigDecimalNUMERICDECIMAL(15,5)
java.lang.BooleanBITBOOLEAN
BooleanBITBOOLEAN
java.lang.ByteTINYINTTINYINT
ByteTINYINTTINYINT
java.lang.CharacterCHARCHAR(4)
CharCHARCHAR(4)
java.lang.ShortSMALLINTSMALLINT
ShortSMALLINTSMALLINT
java.lang.IntegerINTEGERINTEGER
IntINTEGERINTEGER
java.lang.LongBIGINTLONGINT
LongBIGINTLONGINT
java.lang.FloatREALREAL
FloatREALREAL
java.lang.DoubleDOUBLEDOUBLE PRECISION
DoubleDOUBLEDOUBLE PRECISION
byte[]LONGVARBINARYLONG BIT VARYING
java.sql.DateDATEDATE
java.sql.TimeTIMETIME
java.sql.TimestampTIMESTAMPTIMESTAMP
<Java object>JAVA OBJECTLONG BIT VARYING

A.8. Informix 필드 - 컬럼 타입 매핑

[표 A.7] Informix를 위한 EJB CMP 필드 - DB 컬럼 타입 매핑

Java 필드 타입SQL 타입(java.sql.Types)Informix DB 컬럼 타입
java.lang.StringVARCHARVARCHAR(255)
java.math.BigDecimalNUMERICNUMERIC(15,5)
java.lang.BooleanBITVARCHAR
BooleanBITVARCHAR
java.lang.ByteTINYINTSMALLINT
ByteTINYINTSMALLINT
java.lang.CharacterCHARCHAR
CharCHARCHAR
java.lang.ShortSMALLINTSMALLINT
ShortSMALLINTSMALLINT
java.lang.IntegerINTEGERINTEGER
IntINTEGERINTEGER
java.lang.LongBIGINTSERIAL8
LongBIGINTSERIAL8
java.lang.FloatREALREAL
FloatREALREAL
java.lang.DoubleDOUBLEDOUBLE PRECISION
DoubleDOUBLEDOUBLE PRECISION
byte[]LONGVARBINARYVARCHAR(255)
java.sql.DateDATEDATE
java.sql.TimeTIMEDATETIME HOUR TO SECOND
java.sql.TimestampTIMESTAMPDATETIME YEAR TO SECOND
<Java object>JAVA OBJECTBYTE