■ Java JDBC パラメータ設定問題

・PreparedStatementに対して、一つずつパラメータを設定していく

・この時に順番に間違いなく、正しく値を指定しなければならない

・話は簡単だが、ここにバグが入り込む余地があり、また実務では、50個くらいのパラメータがあるのはざらなので、DAOを作成するのが非常に面倒である

・テーブルに変更があった時、当該箇所を注意深く書き直す必要がある

・またJavaでは、名前付きパラメータがないので、この状況に輪をかけている

・いくつかの改善案が考えられるので、それぞれに対応したライブラリを用意して、状況によって適切なものを使用することが望ましい

・名前付きパラメータ
  ・名前付きパラメータのSQLを解析して、順番とパラメータ名の対応Mapを作成する
  ・パラメータ値は、EntityやMapで与える

・Listに格納されたパラメータ値をパラメータに自動的に設定する
  ・この場合のSQLは順番パラメータで記述したもの
  ・注、名前→順番の対応を別途に用意すれば、名前付きパラメータSQLでも対応できるが、そもそもの目的は「パラメータ設定を簡単にしたい」ということなので、これはパラノイア

・画面から入力された検索条件などでは、状況によっては条件の一部が入力されず、SQLが動的に変化する
  ・入力項目にそれぞれ名称をつけて、名称→値のMapを作成し、名前付きパラメータのSQLに値を設定する
  ・動的SQLの生成問題は別途論じている

・結論としては、名前付きパラメータの処理ライブラリの実現がポイント


 

//---------------------------------------------------
//・目次 - JDBC
//・目次 - Java入門
//・目次 - ビジネスパーソンの常識と非常識
//・目次 - 論理・発想・思考についての考察と鍛え方
//・目次 - 単なる雑談
//---------------------------------------------------