ClubDB2でDBFlute語り

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 を使ってなくても、
そもそも JavaC# でなくても、
開発・運用途中からでも、
RDBさえそこにあれば
利用できます。
ClubDB2の皆様、ありがとうございます。
このような素敵な勉強会、大好きな勉強会で、
講演する機会を頂けたことがとてもうれしく、
本当に感謝感謝です。
(懇談会も禁煙モードで本当に助かります)
これからも、ClubDB2は普通に勉強の場として、
活用させて頂きたいと思っています。

なんだか、
「MacBook + DB2 + DBFlute」
でライブコーディングできたのが、
なんだか妙にうれしいですね(^^。

「しゃべり」は、まだまだ修行中ですね。
70点くらいかなー。色々反省もしつつ、
どんどん成長していきたいと考えています。
語れるプログラマーを目指して。
DBの詳しい人が作ったO/Rマッパーに。
その成長した姿をまたお見せする日がくればと。

ちなみに、今回の会場に着く前の集中力BGMは、
季節外れのクリスマス・ウィッシュ(最後の盛り上がり)、
そして、寺井尚子さんのリベル・タンゴでした。

jfluteとDBFluteの旅はまだまだこれから、
いろーんなことがあります、
いろーんなことをやりますので、
これからもよろしくお願いします。

#
# 【おまけ】
# // O/Rマッパーの議論に巻き込まれないで
# http://d.hatena.ne.jp/jflute/20121208/1354952202
#