[Seasar-user:20829] Re: dbflute実行用のsql文取得方法について聞きたいです。
kubo
[E-MAIL ADDRESS DELETED]
2011年 7月 1日 (金) 15:00:48 JST
久保(jflute)です。
iafandaさん、こんにちは
> Seasar-user リスト管理人へ
自分は管理人ではありませんが、
DBFluteの内容なのでお答えしますね。
そもそも、MLは他のML参加者に知恵を借りる場所なので、
管理人の方に呼びかける必要はありませんよ。
> 上記のようにsql実行する前にsql文を取得できますが、以下のメッソドを実行する前にsql文を取得する方法を教えてください。
> memberBhv.insert(member);
> memberBhv.update(member);
実行する「前」にSQL文を取得する機能はありません。
もちろん、色々と改造すればできなくはないですが、
DBFluteの正式な機能としては提供していません。
実行後では不都合な業務的な理由が何かあるのでしょうか?
2011/7/1 <[E-MAIL ADDRESS DELETED]>:
> Seasar-user リスト管理人へ
>
> いつもお世話になっております。
> iafandaです。
>
> dbflute実行用のsql文取得方法について聞きたいです。
> sqlを実行する前にsql文を取得して、データベースに出力したいですが,
> MemberCB cb = new MemberCB();
> String beforeSql = cb.toDisplaySql();
> 上記のようにsql実行する前にsql文を取得できますが、以下のメッソドを実行する前にsql文を取得する方法を教えてください。
> memberBhv.insert(member);
> memberBhv.update(member);
> なお以下のsqlを実行する前にsql文を取得する方法もわからないです。
> ① mZipBhv.outsideSql().selectList(MZipBhv.PATH_TESTTBL001,
> null,TESTTBL001.class);
> ② TESTTbl006Pmb pmb = new TESTTbl006Pmb();
> pmb.setZip(zip);
> mZipBhv.outsideSql().execute(MZipBhv.PATH_TESTTBL002, pmb);
>
>
> dbflute-basic-exampleからsql文を取得する方法がありますが、いずれもsqlを実行する後sql文を取得する方法です。
> ① String displaySql = TnSqlLogRegistry.peekCompleteSql();
> ② public void test_SqlLogHandler_basic() {
> // ## Arrange ##
> final List<String> displaySqlList = new ArrayList<String>();
> CallbackContext callbackContext = new CallbackContext();
> callbackContext.setSqlLogHandler(new SqlLogHandler() {
> public void handle(String executedSql, String displaySql,
> Object[] args, Class<?>[] argTypes) {
> assertNotNull(executedSql);
> assertNotNull(displaySql);
> displaySqlList.add(displaySql);
> }
> });
> CallbackContext.setCallbackContextOnThread(callbackContext);
> try {
> // ## Act ##
> MemberCB cb = new MemberCB();
> cb.query().setMemberName_PrefixSearch("AAA");
> memberBhv.selectCount(cb);
> cb.query().setMemberName_PrefixSearch("BBB");
> memberBhv.selectList(cb);
> cb.query().setMemberName_PrefixSearch("CCC");
> memberBhv.selectCount(cb);
> cb.query().setMemberName_PrefixSearch("DDD");
> memberBhv.selectList(cb);
> // ## Assert ##
> log("[Display SQL]");
> log("- - - - - - - - - - - - - - - - - - ");
> for (String displaySql : displaySqlList) {
> log(displaySql);
> log("- - - - - - - - - - - - - - - - - - ");
> }
> assertEquals(4, displaySqlList.size());
> assertNull(SqlLogRegistryLocator.getInstance()); // This doesn't
> use SqlLogRegistry
> } finally {
> CallbackContext.clearCallbackContextOnThread();
> }
> }
> よろしくお願いいたします。
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
Seasar-user メーリングリストの案内