ClubDB2の帰り、 金曜日の電車に乗るのがいやだったので、 歩いて渋谷から離れて代官山のTSUTAYAの 自習コーナーにて。 今日は、ClubDB2にお越し下さいました方々、 UStreamで講演を聴いてくださった皆様、 (UStreamは途中で切れてしまいましたが(><) 本当にありがとうございます。 「DBFlute!?なんじゃ!?」 みたいな人が多かったと思いますが.... データベース技術者だらけの勉強会。 そんな中でO/Rマッパーが話をできるなんて、 おおげさかもしれませんが、 jflute個人の感覚ではすごいこと、夢のようです。 そのレイヤに存在する矛盾、 それを解かす強い思いを思って臨みました。 データベース技術者にこそ聞いてもらいたい そんなショーでした。 資料は SlideShare で公開しました。 // DBとアプリとDB2をつなぐ架け橋 DBFlute | SlideShare http://www.slideshare.net/jflute/clubdb2-dbflutebridge 資料自体はとっても「poor」です(m_m。 それを彩るライブコーディングと語りは、 聞いてくださった方々の貴重な経験として...。
さて、がっつり補足です。 【EntityのSetter呼び出しでupdate文を構築】 O/Rマッパーでよくありがちな、 update文で必ず全てのカラムを更新してしまう問題が 発生しないような工夫があります。 EntityのSetterが呼び出されたものだけを、 update文の set 句に並べます。 -> 更新対象カラムの明示的指定 【ページングでのSQL発行回数制御】 ページング検索のジレンマ、それは二回SQLを発行すること。 総レコード数取得のカウント検索、実データの検索。 ですが、状況によって一回で済むことがあります。 例えば、1ページ20件のページング、 実データの検索を先に実行して結果が20未満であれば、 それはつまり最後のページ。 例えば、現在ページが3ページならば、総レコード数は、 「20 * 3 + 実データの件数」と導出できます。 DBFluteでは、それを検知してSQLの発行回数を抑えます。 【プロシージャにもつおい!】 プロシージャのメタデータを取得して、 「プロシージャ対応のJavaクラスを自動生成」します。 実装イメージはこんな感じです: -> ProcedurePmb | DBFlute
でも、なんといっても、 多くの人が試してみたいと思われるのは、 ドキュメントの自動生成やDB環境構築自動化、 差分チェックなどの機能たちでしょう。 実は、名前が付いています。 O/RマッパーじゃないDBFluteのことを、 「Alto DBFlute (あるとでーびーふるーと)」 と呼びます。 ぜひ、以下のページをご覧ください。 // Alto DBFlute http://dbflute.seasar.org/ja/introduction/altodbflute.html 手っ取り早くするドキュメント生成するなら、 Alto DBFlute で紹介されている DBFlute Intro という ツールを使うと良いでしょう。 // DBFlute Intro http://dbflute.seasar.org/ja/manual/function/helper/intro/index.html アプリで DBFlute を使ってなくても、 そもそも Java や C# でなくても、 開発・運用途中からでも、 RDBさえそこにあれば 利用できます。
ClubDB2の皆様、ありがとうございます。 このような素敵な勉強会、大好きな勉強会で、 講演する機会を頂けたことがとてもうれしく、 本当に感謝感謝です。 (懇談会も禁煙モードで本当に助かります) これからも、ClubDB2は普通に勉強の場として、 活用させて頂きたいと思っています。 なんだか、 「MacBook + DB2 + DBFlute」 でライブコーディングできたのが、 なんだか妙にうれしいですね(^^。 「しゃべり」は、まだまだ修行中ですね。 70点くらいかなー。色々反省もしつつ、 どんどん成長していきたいと考えています。 語れるプログラマーを目指して。 DBの詳しい人が作ったO/Rマッパーに。 その成長した姿をまたお見せする日がくればと。 ちなみに、今回の会場に着く前の集中力BGMは、 季節外れのクリスマス・ウィッシュ(最後の盛り上がり)、 そして、寺井尚子さんのリベル・タンゴでした。 jfluteとDBFluteの旅はまだまだこれから、 いろーんなことがあります、 いろーんなことをやりますので、 これからもよろしくお願いします。 # # 【おまけ】 # // O/Rマッパーの議論に巻き込まれないで # http://d.hatena.ne.jp/jflute/20121208/1354952202 #