■ 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入門
//・目次 - ビジネスパーソンの常識と非常識
//・目次 - 論理・発想・思考についての考察と鍛え方
//・目次 - 単なる雑談
//---------------------------------------------------