1
私はSQLの更新に対して準備済みの文を使用し始めましたが、私は更新しているときに困っているようです。ロジックは健全だと思われますが、更新セグメントに入るたびにエラーが発生します。私は削除または細かい挿入することができます。誰でも...準備文の更新の問題
Connection con = getDBConnection();
PreparedStatement pstmt = null;
String query = "update table set int = ?, String= ? where int= ? and date= ?";
pstmt = con.prepareStatement(query);
pstmt.setInt(1, var);
pstmt.setDate(2, sqlDate);
pstmt.setInt(3, intVar);
pstmt.setString(4, stringVar);
pstmt.executeUpdate();
私はここで何か間違っていますか?私は可能なすべてのトラブルシューティングを行いました。
Error = "A non-numeric character was found where a numeric was expected"
は、例えば(PARAMTER値である。1,2,3 、4)クエリ文またはデータベースの列配列と相関関係にあるか? 明確化:データベースには4列、abcd ステートメントはacに設定されています。bd ここで、setステートメントはa = 1、c = 2、b = 3、およびd = 4です。 通常、データベースに情報を設定するとき a = 1 b = 2 c = 3 d = 4 ... それが意味をなさないならば。 – cphilpot
@cphilpot:これはSQLに関連しています.setDateなどの最初の引数として指定するインデックスは、SQL *内の位置*です。データベースの列の順序はここでは無関係です。 (INSERT INTO X VALUES(?、?、?、?) 'を実行したことが関係しますが、個人的にはそれは悪い考えです) –
それは私が混乱した場所かもしれません。なぜなら、列番号と相関する挿入文があるからです。あなたの提案を試して、それが修正されているかどうかを確認してください。今日は準備された声明を使い始めました(間違って教えられました)。 – cphilpot