LoginSignup
1
0

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-10-30

はじめに

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 向けの記述をコピーしてきます。

image

それらを 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)

}

この後は

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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0