Interstage Application Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第3部 EJB編> 第26章 Entity Bean編> 26.12 CMPで定義するJavaのデータ型とDBMSのSQLデータ型との対応

26.12.1 標準データ型

■ 使用できる標準データ型

 以下に、使用できる標準データ型を示します。

(注)
コンテナが、対応するJavaのプリミティブデータ型に変換してからデータベースに設定します。

■ nullが使用可能なCMFのデータ型

 以下に、nullが使用できるデータ型を示します。

■ 推奨パターン

 以下に、Javaのデータ型とDBMSのSQLデータ型の組合せ(推奨パターン)を示します。

 Javaのデータ型を、以下の表に示す以外のDBMSのSQLデータ型と組み合わせたい場合は、JDBCドライバの変換規則に従ってください。

 ただし、“使用できる標準データ型”で、(注)となっているデータ型については、コンテナが変換した後のJavaのプリミティブデータ型でJDBCの変換規則に従ってください。

image
 DBMSがOracleで、CHAR型のカラムを使用すると、OracleのJDBCドライバによって、返却される文字列の後ろに続く空白(スペース)を削除する、または文字列長さを合わせるパディングを行うため、データの不整合が起こる可能性があります。
 特にプライマリキーフィールドにCHAR型のカラムをマッピングする場合に注意が必要です。

 CHAR型を使用する代わりにVARCHAR2型を使用することで、この問題は解決されます。

image

Javaのデータ型

DBMSのSQLデータ型

Symfoware

Oracle

SQL Server

boolean/java.lang.Boolean

NUMBER

byte/java.lang.Byte

NUMBER

char/java.lang.Character

double/java.lang.Double

FLOAT

DOUBLE

NUMBER

float

float/java.lang.Float

REAL

NUMBER

real

int/java.lang.Integer

INT

NUMBER

int

long/java.lang.Long

NUMBER

short/java.lang.Short

SMALLINT

NUMBER

smallint

java.lang.String

CHAR

NCHAR

VARCHAR

NVARCHAR

CHAR

VARCHAR2

LONG

char

varchar

text

java.math.BigDecimal

NUMERIC

DECIMAL

NUMBER

decimal

numeric

money

smallmoney

byte[]

BLOB (注1)

RAW

LONGRAW

binary

varbinary

image

timestamp

java.sql.Date

DATE

DATE

java.sql.Time

TIME

DATE

java.sql.Timestamp

TIMESTAMP

DATE

datetime (注2)(注3)

smalldatetime (注2)

− : 推奨するデータ型は特にありません。

注1)
SymfowareのBLOB型は、31KB以内で定義された列に対してのみ取出し/設定ができます。

注2)
datetime型とsmalldatetime型のデータを更新する場合は、以下の形式でデータを指定してください。

注3)
datetime型に対して、以下のAPIを使用する場合、smalldatetime型の範囲内の値だけ有効となります。

image

Javaのデータ型

DBMSのSQLデータ型

Symfoware

Oracle

boolean/java.lang.Boolean

NUMBER

byte/java.lang.Byte

NUMBER

char/java.lang.Character

double/java.lang.Double

FLOAT

DOUBLE

NUMBER

float/java.lang.Float

REAL

NUMBER

int/java.lang.Integer

INT

NUMBER

long/java.lang.Long

NUMBER

short/java.lang.Short

SMALLINT

NUMBER

java.lang.String

CHAR

NCHAR

VARCHAR

NVARCHAR

CHAR

VARCHAR2

LONG

java.math.BigDecimal

NUMERIC

DECIMAL

NUMBER

byte[]

BLOB (注)

RAW

LONGRAW

java.sql.Date

DATE

DATE

java.sql.Time

TIME

DATE

java.sql.Timestamp

TIMESTAMP

DATE

− : 推奨するデータ型は特にありません。

注)
SymfowareSymfoWAREのBLOB型は、31KB以内で定義された列に対してのみ取出し/設定ができます。

image

Javaのデータ型

DBMSのSQLデータ型

Symfoware

Oracle

boolean/java.lang.Boolean

NUMBER

byte/java.lang.Byte

NUMBER

char/java.lang.Character

double/java.lang.Double

FLOAT

DOUBLE

NUMBER

float/java.lang.Float

REAL

NUMBER

int/java.lang.Integer

INT

NUMBER

long/java.lang.Long

NUMBER

short/java.lang.Short

SMALLINT

NUMBER

java.lang.String

CHAR

NCHAR

VARCHAR

NVARCHAR

CHAR

VARCHAR2

LONG

java.math.BigDecimal

NUMERIC

DECIMAL

NUMBER

byte[]

BLOB (注)

RAW

LONGRAW

java.sql.Date

DATE

DATE

java.sql.Time

TIME

DATE

java.sql.Timestamp

TIMESTAMP

DATE

− : 推奨するデータ型は特にありません。

注)
SymfowareSymfoWAREのBLOB型は、31KB以内で定義された列に対してのみ取出し/設定ができます。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2006