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' …