DBFluteフェス 2013
昨日、DBFluteフェス 2013へ参加してきました。 http://atnd.org/events/43654
一番目のAセッションで行われたjfluteさんの『DBFluteとは?』について 備忘録としてまとめます。
全体の流れはこんな感じ...
- CBをつかってDBアクセスのライブコーディング
- 会場からのリクエストで、現場で使うクエリ対応例をライブコーディング
- jfluteさん自己紹介とDBFluteの説明
というjfluteさんスタイルでした。やっぱりライブコーディングみているのは 楽しいですね。
セッションの内容は、
という感じでしょうか
会場で披露された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
現場で使うクエリ対応例
- 複数のカラムに対しての曖昧検索
- 一部のカラムだけ取得
- 期間指定系でいいのないですか
- 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変更に強くいかにするのか