ScalikeJDBC のミニマルストローク Hello World


はじめに

ScalikeJDBC を使ってミニマルストローク Hello World をやったときの記録です。
環境は以下の通り。データベースは何でも良かったのですが、手元に PostgreSQL があったのでそれを使いました。

  • JDK 8.0
  • Scala 2.11.8
  • sbt 0.13.12
  • PostgreSQL 9.6

build.sbt を作る

適当なフォルダに空の build.sbt を作ります。以降、そこがプロジェクトのルートフォルダになります。
今回 build.sbt に記述する必要があるライブラリは ScalikeJDBC 自体と PostgreSQL の JDBC ドライバですので、
Mave Repository で探し、以下の画像のように SBT 向けの記述をコピーしてきます。

それらを build.sbt にペーストします。また scalaVersion も明示しておいたほうが良いでしょう。
いかにも Maven Repository からコピペしただけの内容ですが、よしとします。

build.sbt
scalaVersion := "2.11.8"

// https://mvnrepository.com/artifact/org.scalikejdbc/scalikejdbc_2.11
libraryDependencies += "org.scalikejdbc" % "scalikejdbc_2.11" % "2.4.2"

// https://mvnrepository.com/artifact/org.postgresql/postgresql
libraryDependencies += "org.postgresql" % "postgresql" % "9.4.1211"

PostgreSQL のテーブルを作る

どんなでもいいので適当なテーブルを作っておきます。今回はここの例を使いました。

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

そして、どんなでもいいので適当なデータを投入しておきます。

INSERT INTO COMPANY VALUES (1, 'Hello', 1, NULL, NULL);
INSERT INTO COMPANY VALUES (2, 'World', 2, NULL, NULL);

Hello World

以下をプロジェクトのルートフォルダ直下に HelloSaclikeJDBC.scala 等のファイル名で保存し sbt 実行しましょう。
おまじない要素多いですが、とりあえずこれで Hello と World が取得できれば OK です。
データベースの情報は自環境に合わせて変えてください。

HelloScalikeJDBC.scala
import scalikejdbc._

object HelloScalikeJDBC extends App {

  // データベースに接続
  val url = "jdbc:postgresql://localhost:5432/postgres"
  val user = "postgres"
  val password = "postgres"
  ConnectionPool.singleton(url, user, password)

  // クエリの実行と結果表示
  val names = DB readOnly {implicit session =>
    sql"select name from company".map(_.string("name")).list.apply()
  }
  names.foreach(println)

}

この後は

ここで作ったプログラム自体に実用性は一切ありませんが、とりあえず最も単純なのが動きさえすれば
この後は公式のドキュメント(これ)を参考に、いろいろ改変ながら試してゆけるのではないかと思います。