SQLのタイトルを付けましょう

@DBFlute, Java, EMecha, Eclipse
DBFluteの Eclipse Plugin 'EMecha' をDBFluteの
セットアップをする人(アーキテクトとか)だけがインストール
してるってことはありませんか?ぜひ、ディベロッパー全員に
インストールさせて挙げて下さい。

EMechaの中に EMSql という機能が以前のバージョンから
含まれています。外だしSQLの実装支援です。
今回、さらに "SQLのタイトル" に関する支援が加わり、
それも含めて、EMSql の利用手順を紹介したいと思います。
#
# 1. Behaviorの .java ファイルを選択して右クリック、
#   "EMecha" - "New Outside Sql" を選択
#
BehaviorのExクラス(exbhv配下)の、対応するテーブルの
Behaviorの .java ファイルを選択して、右クリックします。
すると、右クリックメニューの下の方に "EMecha" という
項目が出現します。その中の、"New Outside Sql"
を選択します。すると、画面(ダイアログ)が起動します。
#
# 2. SQLの名前を入力
#
最初から "SQL Name" のテキストボックスにカーソルが
ありますので、そのままSQLの名前を入力します。

  ex) selectSimpleMember

ちなみに、Source folder とか Package は、
基本的にはそのままで良いでしょう。
(Source folder が違う場合は調整しましょう)
#
# 3. SQLのタイトルを入力
#
タブ(tabキー)を一回押すと、今度はSQLのタイトルの
テキストボックスにカーソルが移りますので、そのまま入力。

  ex) シンプルな会員の検索

"Use SQL Title And Desription Comment" は、
デフォルトでチェックONになっています。
ぜひ、SQLの(業務的な)タイトル・説明をSQLファイルに
付与する習慣を付けましょう(ここは日本語でOKなので)。

これがチェックされていると、SQLファイルに、
SQLのタイトル・説明のためのコメントのテンプレートが
出力されます(タイトルは入力された値が反映されます)。 
#
# 4. CustomizeEntityやParameterBeanの選択
#
CustomizeEntityを自動生成したい場合は、
"Use Customize Entity" にチェック。
ParameterBeanを自動生成したい場合は、
"Use Parameter Bean" にチェック。

これらがチェックされていると、SQLファイルに、
これらを自動生成するためのマーク(Sql2Entityマーク)が
出力されます。

ページング検索やカーソル検索を利用する場合は、
さらにネストしたチェックを利用します。
#
# 5. OK! (Enter)
#
さて、OKを押してみましょう。
入力された情報を元に、SQLファイルが(自動で)作成され、
そのSQLファイルを(エディタで)開いた状態になります。
(.sql拡張子に関連付けられているデフォルトエディタで)

すると、(例えば)以下のようなSQLファイルが作成されます。
/*
 [df:title]
 シンプルな会員検索
 
 [df:description]
 SQL Description here.
*/
-- #df:entity#

-- !df:pmb!
-- !!String sample!!
この後は、いつも通り外だしSQL(2Way-SQL)を実装して
下さい。ParameterBeanのプロパティは、一つだけ、
"sample" というのが出力されていますので、これを
参考に定義して下さい(sample自体は消しましょう)。
SQLが書き終わる、もしくは、おおよそ全体の骨格が見えて
来たら、"SQL Description here." 部分にそのSQLの
説明を書きましょう。将来の自分やメンテする別の人のために、
特に特殊なSQLを書いている場合にその理由など、
後でSQLを見る人が困らないように書いておきましょう。
/*
 [df:title]
 シンプルな会員検索
 
 [df:description]
 このSQLはOutsideSqlの最も基本的なExampleです。
 主に以下のポイントにおいて参考になります:
   o パラメータコメント(IFコメントやバインド変数コメントなど)の利用方法
   o Sql2Entityで生成するCustomizeEntityとParameterBeanの定義方法
   o 外だしSQLの業務的なタイトル・説明(SchemaHTMLにて表示される)の記述方法
 外だしSQLのエンコーディングはデフォルトで「UTF-8」です。
 ダブルバイト文字を利用する場合はエディタのエンコーディングにご注意下さい。
*/
-- #df:entity#

-- !df:pmb!
-- !!Integer memberId!!
-- !!String memberName!!

select member.MEMBER_ID
     , member.MEMBER_NAME
     , memberStatus.MEMBER_STATUS_NAME
  from MEMBER member
 where ...
Behaviorのパス定義(BehaviorQueryPath)の
JavaDoc に、SQLタイトルが、SchemaHTMLに、
SQLのタイトルと説明が、表示されます。

ExampleのSchemaHTML(の外だしSQLリスト)をご覧下さい。
dbflute-basic-exampleのSchemaHTML(OutsideSql)