2009-03-23 8 views
0

私は最近、デバッグに多くの時間を要した、非常に大きな問題を抱えていました。私は、テーブルの32列を更新する更新ステートメントを持っています。私はPreparedStatementでそれをしました。 Accidentaly私は1つのsetParameter()呼び出しを削除して、更新を正常に終了できませんでした。PreparedStatementでのSQLのJDBC生成

JDBC(Apache Derby)から例外がありました。「1つのパラメータが初期化されていません」というパラメータが設定されていませんでした。ドライバは名前や序数について何も教えてくれないため、最初に設定されていないパラメータ...

私は、(ほぼ完成した)プリペアードステートメントから単純な古いSQLを生成するいくつかのユーティリティではうまくいきませんでした。私は何が設定されていないかを見ることができるので、このような状況では多くの助けになります。

この問題に直面した人は誰ですか?どのような解決策がありますか?

答えて

0

プリペアドステートメントのパラメータは、PreparedStatementオブジェクトのListまたはMapだけなので、値を検査できるはずです。

また、実際にステートメントを実行する前に、ラップされたPreparedStatementsを作成し、すべてのパラメータと設定を記録するjdbcドライバの周りに非常に単純なWrapperを書くことができます。

2

P6Spyをご覧ください。すべてのJDBC呼び出しをインターセプトしてデータベースに転送する前にログに記録できます。

また、JDBC JDBCTemplateを使用して、定型JDBCコードを多く取り出すことができ、このような間違いを避けることもできます。このビットを使用するには、Springフレームワークの残りの部分は必要ありません。

関連する問題