scala.dbcとOracle DB

Posted 2010年12月14日 by

scalaのデータベースアクセスライブラリーのscala-dbc.jar を使ってOracleに接続しようと試みております。

しかし、なかなかうまく動いてくれません。(The code doesn’t run.)

ソースを見るとPostgreSQL.scala しかない。

コンパイルはできるコードがこれです。
TypeCheckでエラーが発生しているので、OracleのJDBCドライバとの不整合があるのかもしれません。
結構、OracleのJDBCドライバはいろいろやってますし、Date型の扱いは特殊ですからね。


package SeeDo

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

class LocalDerby(db: String, val user: String, val pass: String) extends Vendor {
	def nativeDriverClass = classOf[oracle.jdbc.driver.OracleDriver]
	def uri = new java.net.URI("jdbc:oracle:"+db)
	def retainedConnections = 1
	def urlProtocolString = "jdbc:oracle:"
}

object dbcSample {
	def main(args : Array[String]) : Unit = {
		val database = new Database(new LocalDerby("thin:@192.168.0.105:1521:ORCL", "scott", "tiger"))

		val e = database.executeStatement(
				select fields (("ename" of characterVarying(100))
					and ("empno" of integer)
					and ("deptno" of integer))
					from ("emp")
		) map {t => new Employee(t("empno").asInstanceOf[Int],t("ename").asInstanceOf[String],null,0,null,t("deptno").asInstanceOf[Int],0)}

		for(val i <- e ) {
			print(i.Empno + "      " + i.Ename)
			println
		}
		//
		val sql = select fields ("count(*)" of bigint) from ("emp")
		val rows = database.executeStatement(sql)
		for (val r <- rows; val f <- r.fields){
			println(f.content.sqlString)
		}
		database.close
	}
}

Post Details

  • Post Title: scala.dbcとOracle DB
  • Author: admin
  • Filed As: Scala
  • Tags:
  • You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

コメントを残す