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 컬럼 종류와의 기본 매핑을 설명한다.

이 기본 매핑은 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 컬럼 종류의 이름

다음은 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

다음은 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

다음은 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

다음은 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

다음은 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

다음은 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

다음은 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