2011-12-20 14 views
3

私はDBアクセスのために準備されたステートメントを作成しましたが、それはうまくいきました。私は本当に何が問題なのかよくわかりません。誰かが私がこの準備された声明で間違っていたことを知ることができますか?

何がすべきかは、整数と文字列をとり、これに従ってDBを更新することです。

ここにコードがあります。 DBへの接続が正常に動作しています。

public void updateShipment(int shipmentNumber, String currentLocation) 
     throws SQLException { 

    String sql = "UPDATE shipments SET current_node=? WHERE shipment_id=?"; 
    con.setAutoCommit(false); 
    pre = con.prepareStatement(sql); 
    pre.setInt(1, shipmentNumber); 
    pre.setString(2, currentLocation); 
    pre.executeUpdate(); 
    con.commit(); 
    pre.close(); 
    con.setAutoCommit(true); 
} 
+3

でなければなりません。 –

+0

まあ、それはDBに任意の更新を送信します。 sqliteの内部でsql自体をテストし、動作しますが、dosentはjavaを介して動作しますが、例外はありません。 – keloch

+0

あなたの正確な問題は何ですか?あなたはどんなエラーを出していますか? JDBCドライバーを構成することによって、データベースに送信されている正確なステートメントをログに記録してください。 – lsoliveira

答えて

9

設定すると、パラメータ1と2が混在するように見えます。もしかして:

pre.setString(1, currentLocation); 
pre.setInt(2, shipmentNumber); 
+0

Erhm、これは私に少し恥ずかしがります...はいそれは今働きます。そんな単純なことをどうやって逃すことができますか? :)ありがとう!!! – keloch

5

あなたはパラメータを混入し、これは「動作しない」を定義し、右のコード

pre.setInt(2, shipmentNumber); 
pre.setString(1, currentLocation); 
関連する問題