DBFlute: Behaviorで外だしSQL(OutsideSql):メソッド一覧


メソッド毎の説明がドキュメントに全くないので
取り急ぎ、ここで紹介しましょう。

memberBhv.outsideSql().selectList(path, pmb, entityType);

→ リスト検索。外だしSQLの大半の利用がこのメソッドになる。


memberBhv.outsideSql().entityHandling().selectEntity(path, pmb, entityType);

→ 1件検索。無い場合はnull。


memberBhv.outsideSql().entityHandling().selectEntityWithDeletedCheck(path, pmb, entityType);

→ 1件検索。無い場合は例外。


memberBhv.outsideSql().cursorHandling().selectCursor(path, pmb, handler);

→ カーソルハンドリング。第3引数のCursorHandlerでResultSetを直接利用。


memberBhv.outsideSql().autoPaging().selectPage(path, pmb, entityType);

→ 自動ページング。第2引数はPagingBean実装。戻り値はPagingResultBean
ResultSetによる絞込みを利用するため、SQLでページング絞込みを意識する必要がない。
(SQLDBMSごとのページング絞込みを自動埋め込みは検討中)


memberBhv.outsideSql().manualPaging().selectPage(path, pmb, entityType);

→ 手動ページング。第2引数はPagingBean実装。戻り値はPagingResultBean
SQLでページング絞込みを行う必要がある。(但しIndexの計算処理等はPagingBeanにて自動処理)

MySQLPostgreSQLなどのページング絞込みが簡単なDBではmanualPagingでも全く苦は無いと
思われるが、OracleSQLServerDB2などでは煩雑に思われるかもしれない。
但し、業務アプリでパフォーマンスを厳密に考慮したい場合は、autoよりもmanualの方が優れている。


memberBhv.outsideSql().dynamicBinding().selectList(path, pmb, entityType);

→ 動的なBind変数をサポートする。要は埋め込み変数コメントの文字列中にバインド変数コメントを
いれることが可能になる。但し、動的解析する分、ほんの少しだけパフォーマンスが落ちる。
dynamicBinding()を呼べば、全てのメソッドでそうなる。(selectList()に限らない)