Hitachi

Hitachi Advanced Data Binder AP開発ガイド


7.6.3 オーバフローが発生したときの処理

ここでは,setXXXおよびgetXXXメソッド実行時のオーバフローの可能性について説明します。

〈この項の構成〉

(1) setXXXメソッド(setObjectメソッドを除く)実行時のオーバフローの可能性

setXXXメソッド実行時のオーバフローの可能性(setObjectメソッドを除く)を次の表に示します。

表7‒11 setXXXメソッド実行時のオーバフローの可能性(setObjectメソッドを除く)

実行するメソッド

HADBのデータ型

SMALLINT

INTEGER

DOUBLE PRECISION,FLOAT

DECIMAL,NUMERIC

CHAR,VARCHAR

DATE

TIME

TIMESTAMP

ROW

BINARY,VARBINARY

setByte

×

setShort

×

setInt

×

setLong

×

×

setFloat

×

×

×

setDouble

×

×

×

setBigDecimal

×

×

×

setBoolean

setString

×

×

×

×

×

setBytes

setDate

×

×

setTime

×

setTimestamp

×

×

setAsciiStream

setBinaryStream

setCharacterStream

(凡例)

○:値に関係なく,オーバフローしません。

×:値によっては,オーバフローすることがあります。

−:この組み合わせでは使用できません。

注※

java.sql.Datejava.sql.Time,またはjava.sql.TimestampクラスのgetTimeメソッドで取得した値が253,402,268,399,999より大きいか,または-62,135,802,000,000より小さいオブジェクトである場合,オーバフローします。なお,getTimeメソッドは,1970年1月1日0時0分0秒(グリニッジ標準時)からのミリ秒数を返します。

253,402,268,399,999はHADBのTIMESTAMP型に格納できる最大値から,-62,135,802,000,000はjava.sql.Timestampクラスで表現できる最小値から,次に示すメソッドで取得できます。

253,402,268,399,999:

Timestamp.valueOf("9999-12-31 23:59:59.999999").getTime()

-62,135,802,000,000:

Timestamp.valueOf("0001-01-01 00:00:00.0").getTime()

(2) setObjectメソッド実行時のオーバフローの可能性

setObjectメソッド実行時のオーバフローの可能性を次の表に示します。

表7‒12 setObjectメソッド実行時のオーバフローの可能性

setObjectメソッドで指定するオブジェクトのデータ型

HADBのデータ型

SMALLINT

INTEGER

DOUBLE PRECISION,FLOAT

DECIMAL,NUMERIC

CHAR,VARCHAR

DATE

TIME

TIMESTAMP

ROW

BINARY,VARBINARY

Byte

×

Short

×

Integer

×

Long

×

×

Decimal

×

×

×

Float

×

×

×

Double

×

×

×

Boolean

String

×

×

×

×

×

Date

×

×

Time

Timestamp

×

×

byte[]

(凡例)

○:値に関係なく,オーバフローしません。

×:値によっては,オーバフローすることがあります。

−:この組み合わせでは使用できません。

注※

java.sql.Datejava.sql.Time,またはjava.sql.TimestampクラスのgetTimeメソッドで取得した値が253,402,268,399,999より大きいか,または-62,135,802,000,000より小さいオブジェクトである場合,オーバフローします。なお,getTimeメソッドは,1970年1月1日0時0分0秒(グリニッジ標準時)からのミリ秒数を返します。

253,402,268,399,999はHADBのTIMESTAMP型に格納できる最大値から,-62,135,802,000,000はjava.sql.Timestampクラスで表現できる最小値から,次に示すメソッドで取得できます。

253,402,268,399,999:

Timestamp.valueOf("9999-12-31 23:59:59.999999").getTime()

-62,135,802,000,000:

Timestamp.valueOf("0001-01-01 00:00:00.0").getTime()

(3) getXXXメソッド(getObjectメソッドを除く)実行時のオーバフローの可能性

getXXXメソッド実行時のオーバフローの可能性(getObjectメソッドを除く)を次の表に示します。

表7‒13 getXXXメソッド実行時のオーバフローの可能性(getObjectメソッドを除く)

実行するメソッド

HADBのデータ型

SMALLINT

INTEGER

DOUBLE PRECISION,FLOAT

DECIMAL,NUMERIC

CHAR,VARCHAR

DATE

TIME

TIMESTAMP

ROW

BINARY,VARBINARY

getByte

×

×

×

×

×

getShort

×

×

×

×

×

getInt

×

×

×

×

getLong

×

×

×

getFloat

getDouble

getBigDecimal

getBoolean

getString

getBytes

getDate

getTime

getTimestamp

getAsciiStream

getBinaryStream

getCharacterStream

getArray

(凡例)

○:値に関係なく,オーバフローしません。

×:値によっては,オーバフローすることがあります。

−:この組み合わせでは使用できません。

(4) getObjectメソッド実行時のオーバフローの可能性

getObjectメソッド実行時のオーバフローの可能性を次の表に示します。

表7‒14 getObjectメソッド実行時のオーバフローの可能性

getObjectメソッドで取得するオブジェクトのデータ型

HADBのデータ型

SMALLINT

INTEGER

DOUBLE PRECISION,FLOAT

DECIMAL,NUMERIC

CHAR,VARCHAR

DATE

TIME

TIMESTAMP

ROW

BINARY,VARBINARY

Byte

×

×

×

×

×

Short

×

×

×

×

×

Int

×

×

×

×

Long

×

×

×

Float

×

×

×

Double

×

×

BigDecimal

×

×

Boolean

String

Bytes

Date

Time

Timestamp

AsciiStream

BinaryStream

Object

CharacterStream

(凡例)

○:値に関係なく,オーバフローしません。

×:値によっては,オーバフローすることがあります。

−:この組み合わせでは使用できません。