■ SQL作成・生成問題 JDBC Java
・実行するSQLをどのように生成するか?
・手作業。
・プログラムロジック。
・手作業
・作成したSQLをプログラム上あるいはファイルに格納するかはともかくとして、とにかく手作業で作成する。
・メリット
・SQLの完成系が見られるので分かりやすい。
・デメリット
・作成者個人の力量に依存する。
・作成するのが面倒。
・同じようなSQLが各所で散らばって存在する可能性がある。
・プログラムロジック
・この言い方は雑なので分類する。
・定義ファイルより生成する。
・定義ファイルは、Entity定義やテーブル定義(メタデータ)から生成できる。
・アプリロジック中で生成する。
・カラム名やwhereの条件などをアプリのロジックで、実行中に生成するイメージ。
・アプリロジック中での生成
・このような方法を推奨している人も多いようだが、個人的には、SQLが分かりにくくなるので、できるだけ避けるべきと考える。
・しかし、画面から入力したデータを元に検索する場合などは、これでやった方が便利なこともある。
・定義ファイルより生成
・手作業での作成、アプリロジックでの生成は、個別の問題となるので捨象する。
・この問題については、以下と表裏一体なので、参照されたい。
■ DAOパターンの展開
http://blogs.yahoo.co.jp/artery2020/39604829.html
・メリット
・定義に従って生成するので、バグがない限り、SQLに間違いがない。
・作業の手間を大幅に省略できる。
・デメリット
・どのようなSQLが生成されるか、若干分かりにくい。
・基本的なSQLは生成できるが、複雑なSQLは生成できない。
・生成されたSQLを管理するのが難しい。
・いろいろ工夫すると、精緻なものは、ある程度は可能だが、結局分かりにくい。
・定義ファイルを作成・生成する方法
・手作業で作成
・エクセルなどのテーブル定義から生成
・テーブルのメタデータから生成
・注意点
カラムとフィールドの対応を取る必要がある。
・Entityの生成と同一定義ファイルにした方がよい。
・課題
・実行時にカスタマイズできるとよい
・distinct、where条件、for updateなど
・実際の処理方法やサンプルは別途紹介する。
//---------------------------------------------------
//・目次 - JDBC
//・目次 - Java入門
//・目次 - ビジネスパーソンの常識と非常識
//・目次 - 論理・発想・思考についての考察と鍛え方
//・目次 - 単なる雑談
//---------------------------------------------------