5

Orcale データベースへの jdbc 接続を設定する Java アプリケーションがあります。データベースにデータを挿入しようとしていますが、Oracle NUMBER タイプに関して混乱しています。テーブルには、それぞれこれらのタイプの 3 つの列があります。

NUMBER(38,0)
NUMBER(20,0)
NUMBER(16,0)

私の最初の質問は、データをプリペアドステートメントで使用するために、どのタイプの Java タイプにデータを入れるべきかということです。

2 番目の質問は、データを挿入するためにプリペアド ステートメントで使用できるセット操作です。

NUMBER(38,0) を扱っていると仮定しましょう。Java 型を BigInteger に設定しますか? 私が整数1を持っていたら、それは

 BigInteger one = new BigInteger(1);

次に、私の PreparedStatement では、次のようになります

 PreparedStatement pstmt = conn.prepareStatement("INSERT INTO TABLE(bigInt) VALUES(?)");
 pstmt.setLong(1, one);

これはうまくいかないようですので、これは正しくないと思います。どんな助けでも大歓迎です。

4

2 に答える 2

6

setLong()を取ることはできませんBigIntegerlongデータベースにの範囲を超える値が本当にある場合setBigDecimal()は、 が存在しないため、を使用する必要がsetBigInteger()あり、変数のタイプは である必要がありますBigDecimallongがデータベース内の値の範囲を網羅している場合は、 と を使用longしてくださいsetLong()

于 2013-06-27T14:37:49.567 に答える