S-JIS[2011-01-16/2013-06-08] 変更履歴

Scala dbc

Scaladbcは、DBアクセスする為のクラスライブラリー。JavaのJDBCのラッパー。
Scala2.8のライブラリーに含まれているが、まだ未完成らしい。
そしてScala2.10で廃止になったらしい(爆)[2013-06-08]


サンプル

dbcを使ってOracleにアクセスする例。

package sample
import scala.dbc._
import scala.dbc.syntax.DataTypeUtil._ //DBのデータ型
import scala.dbc.syntax.Statement._    //select等のステートメント
import java.net.URI
case class Oracle(val uri: URI, val user: String, val pass: String) extends Vendor {
  def nativeDriverClass = Class.forName("oracle.jdbc.driver.OracleDriver")
  def retainedConnections = 1
  def urlProtocolString = "jdbc:oracle:"
}
object DbcSample1 {
  def main(args: Array[String]) = {
    val db = new Database(new Oracle(new URI("jdbc:oracle:thin:@localhost:1521:ora92"), "scott", "tiger"))
    try {
      //●SQLの構築
      val st = select fields {
          ("EMPNO" of numeric(4)) and
          ("ENAME" of characterVarying(10))
        } from "EMP"

      //●SQLの実行
      val rows = db.executeStatement(st)

      //●結果の表示
      for (row <- rows) {
        for (f <- row.fields) {
          println(f.metadata.name + "=" + f.content.sqlString)
        }
      }

    } finally {
      db.close
    }
  }
}

SQL文の構築の仕方が面白い。
通常のSQLに近い形で書けるように頑張っているのが分かる(笑)


実行する際にはJDBCのjarファイルが必要。

> fsc DbcSample1.scala

> scala -cp ".;C:\oracle\ora92\jdbc\lib\ojdbc14.jar" sample.DbcSample1
EMPNO=7369
ENAME='SMITH'
EMPNO=7499
ENAME='ALLEN'
…

Scala目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま