はじめに
タイトルにPlayも含めてるけど、今回のエントリーは主にSlick 2.0.xの話。
そして、最初に一言言わせて欲しい。Slickのドキュメントは分かりにくい or 不十分。ただ、「お前が貢献しろよ」、という真っ当な指摘が来そうなので、これに関してはあまり深入りはしない。
まずは今回の目的を。
目的・ゴール
簡単に今回の目標を書いておく。
- Play! framework 2.2.xで、Slickを使ってDBにアクセスする。
- DBのスキーマからコードを自動生成する機能を使う。
後者に関してだけど、DBのテーブルは生のSQLを使うことが多いので、あると非常に便利。幸い、Slickにはコード自動生成の機能があるので、それを使う。
ScalaのDB library
本題に入る前に、今回のエントリーの背景を少し。
今実験的に動いているプロジェクトでは、前回のプロジェクトと同じくPlay! 2.2を使うことにした。慣れてるし。でも、せっかくだし何か新しいことも試さないと、ということで、DBライブラリーは今まで使ったこと無いSlickを使うことにした。
今まではSquerylとScalikeJDBCを使った事があって、どちらにも大きな不満はそれほどなかった。実際、両方共いいライブラリだと思う。後から出てきたScalikeJDBCの方が設計は綺麗だと思うけど。
その他、Play!の場合Anormという選択肢もあるけど、知り合いの信頼の置ける開発者から「論外」みたいな話を聞いたことがあるし、ドキュメントを見る限り基本的というか低レベルなので、あまり開発効率向上にはつながらなさそう、ということで除外。
環境
さて、本エントリーの環境。
- Play! framework 2.2.2
- play-slick 0.6.0.1 (Play!でSlickを使うためのプラグイン)
- Slick 2.0.0 (play-slickのバージョンによって使えるSlickのバージョンが異なる)
以下、本題。