ムカデノワラジ

ムカデノワラジ

ガジェット・Webサービス・プログラミング・エンタメについて書く雑記ブログ

MENU

Scalaでシンプルなデータベース操作

実践Scala入門

実践Scala入門

ScalaJDBCを使ってデータベースにアクセスし素朴にデータを取得するサンプル

root directoryをscala_test

scala_test以下に

test.scala

build.sbt

を用意する。

今回はdatebase_nameというdatabaseのtable_name から取得する
database_name のtable_name

id title author
1 吾輩は猫である 夏目漱石
2 金閣寺 三島由紀夫
3 細雪 谷崎潤一郎
4 夜明け前 島崎藤村

先にpotgresqlサーバーをスタート

sudo sevice  postgresql start

psqlは次のように起動する

$(sudo) psql -h host -p port_num -U -d database_name

test.scala

import java.sql._
object dbTest{
    def main(args: scala.Array[String]) ={
        class.forName("org.postgresql.driver")
        val db= DriverManager.getConnection("jdbc:postgresql:datebase_name","user_name","password")
        val stmt = db.prepareStatement("SELECT * FROM table_name")
        // prepareStatementとstatementがある
        // statementは与えられた文字列をそのまま実行
        // prepareStatementはパフォーマンス向上、あとからパラメータ変更もできる
        rs = st.executeQuery()
        // rs.nextで行が存在するときtrue
        while(rs.next) {
            // rsにはdbの行が入る
            // rは行の1~3列目のVectorとして返される
            val r = for (n <- 1 to 3 ) yield  rs.getObject(n) //getObject(n) で行のn列目を取得する
            println(r)
        }
    }
}


上記のコード中のrsはorg.postgresql.jdbc.PgResultSet



build.sbt

name := "scalatest"
scalaVersion := "2.11.8"
libraryDependencies += "org.postgresql"%"postgresql"%"42.1.4"
$ sbt run

Vector(1,吾輩は猫である,夏目漱石)
Vector(2,金閣寺,三島由紀夫三島由紀夫)
Vector(3,細雪,谷崎潤一郎)
Vector(4,夜明け前,島崎藤村)


関連記事
Scalaでシンプルなデータベース操作 - ムカデノワラジ

参考
Scala PlayFramework でアプリケーション作ってみた ③ 【モデル(Skinny-ORM)編】 - yujiro's blog
Hatena-Textbook/database-programming-scala.md at master · hatena/Hatena-Textbook · GitHub
Play framework(+ Slick)でのWebアプリの始め方 - Qiita

Tutorials - 2.7.x