Scala の JDBC ライブラリ scala.dbc について


scala.dbc は Scala に添付のデータベース操作用のライブラリです。ORM ではなくて、JDBCのラッパです。メンテナンスもあまりアクティブでないため、そのうち無くなると思いますが、SQL を DSL のようにタイプセーフで書けるので勉強になるかも・

一応 H2 を利用した例だけ載せときます。H2 の JAR をクラスパスに追加して実行するだけ。

import scala.dbc._
import scala.dbc.Syntax._
import scala.dbc.syntax.Statement._

object Runner {
  object H2SQL extends Vendor {
    val uri = new java.net.URI("jdbc:h2:mem:test")//インメモリ
    val user = "sa"
    val pass = ""
    val retainedConnections = 5
    val nativeDriverClass = classOf[org.h2.Driver];
    val urlProtocolString = "jdbc:h2:"
  }
  
  def main(args: Array[String]) {
    val db = Database(H2SQL)
    val sql = select fields ("count(*)" of bigint) from ("dual")
    val rows = db.executeStatement(sql)
    for (val r <- rows; val f <- r.fields)
      println(f.content.sqlString)
    db close
  }
}

SQL の記述は興味深いですね。

    val sql = select fields ("count(*)" of bigint) from ("dual")