ひとめでDBFlute

ひとめでパッとDBFluteを探るまとめページです。(ここからリンクが辿れます)

入り口ページ

チュートリアル (とにかくここから)

アーキテクト向け
アーキテクトのためのチュートリアル
ディベロッパー向け
ディベロッパーのためのチュートリアル

DBFluteハンズオン (厳しい修行)

ハンズオン形式で修行
DBFluteハンズオン

DBFluteタスク

DBFluteタスクの一覧

JDBCタスク
実際のデータベースからスキーマ情報を取得
Docタスク
スキーマ情報からドキュメントを自動生成
Generateタスク
スキーマ情報からクラスを自動生成
Sql2Entityタスク
外だしSQL(OutsideSql)からクラスを自動生成
OutsideSqlTestタスク
外だしSQL(OutsideSql)を一括実行してテスト
ReplaceSchemaタスク
スキーマを再構築(初期化・作成・データ登録・整合性チェック)
Manageタスク
管理用のサブタスク (Renewal, Regenerate など) を実行できる
e.g. Sql2Entityの実行ファイル (バッチファイル) @Directory
dbflute_xxxdb // ここをDBFluteクライアントと呼びます
 |-dfprop     // DBFluteプロパティの置き場所 (設定ファイルたち)
 |-log
 |-...
 |-playsql    // ReplaceSchemaのリソースの置き場
 |-...
 |-sql2entity.bat
 |-sql2entity.sh
 |-...

DBFluteタスク実行タイミング

ドキュメント自動生成なら
JDBC, Doc
Entityクラス自動生成なら
JDBC, Generate
外だしSQLのクラス自動生成なら
Sql2Entity
DBスキーマを構築するなら
ReplaceSchema
いろいろ一括実行するなら
Manage の Renewal or Regenerate

ConditionBean

ConditionBeanの情報ページ

トップページ
ConditionBean *ここがすべて
ひとめで
ひとめでConditionBean *お手軽リファレンス

ConditionBeanの実装Example

e.g. 基点テーブルは "会員" @Java

// 1. 基点テーブルのConditionBeanを生成 (基点テーブル何か?)
//  {select句, from句}
MemberCB cb = new MemberCB();

// 2. 取得したい関連テーブルを指定 (取得したい関連テーブルは何か?)
//  {select句, join句}
cb.setupSelect_MemberStatus();

// 3. 絞り込み条件・並び替え条件を設定 (どんな絞り込み、並び替えをしたいか?)
//  {where句, order-by句, (from句, on句)}
cb.query().setMemberName_PrefixSearch("S");
cb.query().addOrderBy_Birthdate_Desc();
cb.query().addOrderBy_MemberId_Asc();

// 4. Behaviorのメソッドを呼ぶ (一件検索なのか?リスト検索なのか?)
//  {一件検索?リスト検索?ページング検索?}
List<Member> memberList = memberBhv.selectList(cb);

// あとは、検索結果をお好きなように
for (Member member : memberList) {
    String memberName = member.getMemberName();
    Date birthdate = member.getBirthdate();
    String statusName = member.getMemberStatus().getMemberStatusName();
    ...
}

外だしSQL (OutsideSql)

外だしSQLの情報ページ

トップページ
外だしSQL(OutsideSql) *2Way-SQL
使い方
外だしSQLの使い方 *とにかく実装したいなら
外だしで使うタスク
Sql2Entityタスク *SQL対応Entityの自動生成

外だしSQLの実装の流れ

  1. 外だしSQLを パラメータコメント を使って 2Way-SQL で書く
  2. Sql2Entity を実行して CustomizeEntityParameterBean を自動生成
  3. Behaviorの outsideSql() メソッドから実行

外だしSQLの実装Example (2Way-SQL)

e.g. 2Way-SQLでの実装 (CustomizeEntity と ParameterBean を利用) @OutsideSql
/*
 [df:title]
 単なるシンプルな会員検索
 
 [df:description]
 これはDBFluteドキュメント上のExampleであり、
 正直、このくらいなら ConditionBean で実装してしまうだろう。
*/
-- #df:entity#

-- !df:pmb!
-- !!AutoDetect!!

select mb.MEMBER_ID
     , mb.MEMBER_NAME
     , stat.MEMBER_STATUS_NAME
  from MEMBER mb
    left outer join MEMBER_STATUS stat
      on mb.MEMBER_STATUS_CODE = stat.MEMBER_STATUS_CODE
 /*BEGIN*/
 where
   /*IF pmb.memberId != null*/
   mb.MEMBER_ID = /*pmb.memberId*/3
   /*END*/
   /*IF pmb.memberName != null*/
   and mb.MEMBER_NAME like /*pmb.memberName*/'M%'
   /*END*/
 /*END*/
 order by mb.BIRTHDATE desc, mb.MEMBER_ID asc
#df:entity#
SQL対応のEntityを自動生成するというマーク
!df:pmb!
SQLに渡すパラメーターを詰めるBeanを自動生成するというマーク
!!AutoDetect!!
SQLに渡すパラメーターのプロパティを自動判別するというマーク

外だしSQLの呼び出し (Javaから)

e.g. リスト検索 (TypedParameterBean) {名前が 'S' で始まる会員を検索}@Java
SimpleMemberPmb pmb = new SimpleMemberPmb();
pmb.setMemberName_PrefixSearch("S");

// 外だしSQLの実行 (MemberBhv_selectSimpleMember.sql)
List<SimpleMember> memberList
        = memberBhv.outsideSql().selectList(pmb);