S-JIS[2011-01-16/2013-06-08] 変更履歴
Scalaのdbcは、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' …