DBFluteフェス 2013

昨日、DBFluteフェス 2013へ参加してきました。 http://atnd.org/events/43654

一番目のAセッションで行われたjfluteさんの『DBFluteとは?』について 備忘録としてまとめます。

全体の流れはこんな感じ...

  1. CBをつかってDBアクセスのライブコーディング
  2. 会場からのリクエストで、現場で使うクエリ対応例をライブコーディング
  3. jfluteさん自己紹介とDBFluteの説明

というjfluteさんスタイルでした。やっぱりライブコーディングみているのは 楽しいですね。

セッションの内容は、

  • IDEのショートカット機能を使いきって効率的に開発しよう!
  • DBFluteはIDEと親和性がとても高いので、DBFlute+IDEで超速コーディングができますよ!!

という感じでしょうか

会場で披露されたEclipseショートカット

  • Ctrl + 2,その後に L:定義側を作ってくれますが、セミコロンもいれてくれるの知らなかった!
  • Shift + Return で次の行に移る(入力モード中でもそこから抜けて次の行にいける)
  • 入力モードのときに、緑の棒はエンター押したときに行くところ(囲われている変数部分は、変更できる場所ですね)
  • foreと書き込んであとは補完(Ctrl + Space) でfor eachを作る(直前にあるlistで作ってくれる)
  • Ctrl + 1 ,直ったら Enter
  • Ctrl + Alt + ↑でコピー行をつくって, Alt + ↑ で移動させる (同じ記述が必要になったとき) 方向は下でもよかった気がします

あと、Ctrl + Shift + T と Ctrl + Shift + R はDBFluteユーザにはあたりまえですかね。

http://d.hatena.ne.jp/jflute/20090628/1246196310

現場で使うクエリ対応例

  1. 複数のカラムに対しての曖昧検索
  2. 一部のカラムだけ取得
  3. 期間指定系でいいのないですか
  4. NN検索(本人から)

期間指定系でいいのないですか?

  • まで検索(ex. 1日から3日いっぱいまで)がしたくなったらsetFromalizedDatedDatetime_FromToを使うと簡単にできる。 終了日時を次の日の0時にして未満でクエリをつくってくれる。
  • さらに、FromToOptionを使うと、月まで指定の検索ができる。
  • FromToOptionはいろいろ入ってて便利(週指定とか月指定とかできてスタート日も設定できるので、水曜からの一週間や、20日締め日での計算とか)
  • ちょっとやり過ぎなぐらいに盛りだくさんでしたが、日付処理系のところは人のミスによるバグが入りやすいところということで、かなり作りこんだそうです。

http://dbflute.seasar.org/ja/manual/function/ormapper/conditionbean/query/fromto.html

DBFluteの紹介

DBFluteは自動生成ツール

  • 早い、打ち間違えがないのも特徴だけど、DBがかわったらコンパイルエラーで分かること(Freegenの魅力ですね)。
  • DBの方がアプリよりも長生きなので、アプリの都合でDBが変えられないことを防ぎたい。
  • orが使えるようになってます。DBMSでインデックスマージが使えるようになってきているので(まだunionを使った方が早いケースがあるそうです)

こだわっていることについて

  • きっちりとログを出すこと
  • ログに出すsqlのインデントには拘っている

  • スピードの速いビジネス変化。DB変更に強くいかにするのか