はじめに
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 からコピペしただけの内容ですが、よしとします。
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 です。
データベースの情報は自環境に合わせて変えてください。
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)
}
この後は
ここで作ったプログラム自体に実用性は一切ありませんが、とりあえず最も単純なのが動きさえすれば
この後は公式のドキュメント(これ)を参考に、いろいろ改変ながら試してゆけるのではないかと思います。