Slick 1.0.0 documentation - 01 導入 Permalink to Introduction — Slick 1.0.0 documentation

導入 

Slickとは 

SlickはTypesafe社によって開発が行われている,Scalaのためのモダンなデータベースラッパーである.データベースにアクセスしながらScalaのコレクションを扱うかのようにデータを操作する事が出来る.また,SQLを直接書く事も可能である.

val limit = 10.0
// クエリはこのように書く事が出来る
( for( c <- Coffees; if c.price < limit ) yield c.name ).list
// SQLを直接書いた例
sql"select name from coffees where price < $limit".as[String].list

クエリをSQLを用いて書く代わりにScalaを用いるとコンパイル時に合成が安全に行われ,より良い形で利用する事が出来る.Slickは独自のクエリコンパイラを用いてDBに対しクエリを発行する.

Slickの特徴 

Slickは以下のような特徴を持っている:

Easy 

Concise 

Safe 

Composable 

SlickはScala2.10を必要とします. (Scala2.9を利用する際にはSlickの前身である,ScalaQueryを利用してください.)

サポートするデータベース 

他のSQLデータベースもSlickなら簡単にアクセスする事が出来るでしょう.独自のSQLベースのバックエンドを持つデータベースも,プラグインを作成する事でSlickを利用することが出来ます.そのようなプラグインの作成は大きな貢献となるでしょう. NoSQLのような他のバックエンドを持つようなデータベースに関しては現在開発中であるため,まだ利用する事はできません..

簡単な概説 

SlickのLiftedEmbeddingによるデータベースへのアクセスは以下のステップで行う事ができます.

1.Slickのjarファイルをプロジェクトのdependenciesへ追加する

2.利用するDBに応じたDriverをimportし,セッションを作成する(もしくは単純にthreadLocalSessionをimportする).

import scala.slick.driver.H2Driver.simple._
import Database.threadLocalSession

3.データベーススキーマを記述する

object Coffees extends Table[(String, Double)]("COFFEES") {
  def name = column[String]("COF_NAME", O.PrimaryKey)
  def price = column[Double]("PRICE")
  def * = name ~ price
}

4.セッションスコープ内にて,for式かmap/flatMapを用いてクエリを記述する

Database.forURL("jdbc:h2:mem:test1", driver = "org.h2.Driver") withSession {
  ( for( c <- Coffees; if c.price < 10.0 ) yield c.name ).list
  // or
  Coffees.filter(_.price < 10.0).map(_.name).list
}

次の章では,より詳細な扱い方や機能について説明します.

License 

Slick is released under a BSD-Style free and open source software license.

Fork me on GitHub