2012-02-28 4 views
1

準備された文を使用して符号なし整数値を挿入したいとします。 2番目のパラメータは(マックスがintを署名付き)2,147,483,647を超える場合

にsetInt()は私の基礎となる表は4294967295(最大unsigned int型)をかむことができますが

は、setUnsignedIntようなもの()があるのはDataTruncationで私をピタッ?テーブルは(INT(10)UNSIGNED)として設定されていますが、setLong()を使うべきですか?
ありがとう符号なし整数のJava SQL準備文

+0

longまたはBigIntegerを使用するだけです –

答えて

1

通常、Javaで符号なしプリミティブのヘッドルームが必要な場合は、次の層のサイズに移動します。あなたの場合、それは長いです。

2

これを行うには、現在の最大(符号なし)値を保持する次の最小データ型を使用します。 Integerの場合はLongとなります。 Integerの最大値(符号なし)を上回るものはすべて破棄できます。

このpost will shed some light

4

はい、あなたはsetLong()を使用する必要があります。

指定されたパラメータに指定されたJavaのlong値を設定します。データベースに送るとき、ドライバはこれをSQL BIGINT値に変換します。

したがって、2^32-1より大きな値を設定すると、DBによって拒否される可能性があることに注意してください(うまくいけば、私はラップできると思います)。

関連する問題