ConditionBeanの基本
ConditionBeanとは?
そもそもConditionBeanとは?に関してはこちら
特徴
ConditionBeanは、目的ベースにSQLを組み立てるオブジェクトです。
- A. 「取得したいテーブル何か?」
- B. 「取得したい関連テーブルは何か?」
- C. 「どんな絞込みをしたいか?ソートをしたいか?」
- D. 「一件検索なのか?リスト検索なのか?」
などの「目的」を指定することで、SQLを安全に実行することが可能する。
実装手順
- A. 基点テーブルのConditionBeanを生成
- B. 取得したい関連テーブルを指定
- C. 絞り込み条件・ソート条件を設定
- D. Behaviorのメソッドを呼ぶ
ex) 基点テーブルを会員(MEMBER)とした場合 @Java
// ## Arrange ##
// = = = = = = = = = = = = = = = = =
// A. 基点テーブルのConditionBeanを生成
// --> select句, from句)
// = = = = = = = = = = = = = = = = =
MemberCB cb = new MemberCB();// 基点テーブルは「会員」
// = = = = = = = = = = = = = = = =
// B. 取得したい関連テーブルを指定
// --> select句, from句, join句)
// = = = = = = = = = = = = = = = =
cb.setupSelect_MemberStatus();// 「会員ステータス」を結合してSelect句に展開
// = = = = = = = = = = = = = = = = = = = = = =
// C. 絞り込み条件・ソート条件を設定
// --> where句, order-by句(, from句, join句)
// = = = = = = = = = = = = = = = = = = = = = =
cb.query().setMemberName_PrefixSearch("S");// 会員名が'S'で始まること
cb.query().addOrderBy_MemberBirthday_Desc();// 会員の生年月日の降順で並べる
// ## Act ##
// = = = = = = = = = = = = =
// D. Behaviorのメソッドを呼ぶ
// = = = = = = = = = = = = =
List<Member> memberList = memberBhv.selectList(cb);// リスト検索
// ## Assert ##
assertNotSame(0, memberList.size());
for (Member member : memberList) {
log(member.toString());
assertTrue(member.getMemberName().startsWith("S"));
}
// [SQL]
// select ...
// from MEMBER member
// left outer join MEMBER_STATUS status
// on member.MEMBER_STATUS_CODE = status.MEMBER_STATUS_CODE
// where member.MEMBER_NAME like 'S%'
// order by member.MEMBER_BIRTHDAY desc
DBFluteBasicExample
詳細な機能や仕様に関しては、DBFluteBasicExampleのExample実装をご覧下さい。
DBアクセスを定番化しよう
gihyo.jp連載の「DBアクセスを定番化しよう」も参考になります。
ConditionBeanのスコープ
ConditionBeanと外だしSQLのどちらを使ったらよいのか迷ったら、ConditionBeanのスコープをご覧下さい。
逆引きConditionBean
目的から機能を逆引くドキュメント:逆引きConditionBean
ConditionBeanのポリシー
ConditionBeanのポリシーについて。※概念的なドキュメントです。
