LiftからOracleに接続する。

Scala+Lift 関連目次

接続設定

接続設定はpropsに書くのが流儀らしいので、/resources/props/default.props に以下を追加します。

[code] oracle.db.driver=oracle.jdbc.driver.OracleDriver
oracle.db.url=jdbc:oracle:thin:@HOST:1521:SID
oracle.db.user=USER
oralce.db.password=PASSWORD
[/code]

コネクション取得処理

bootsrap.liftweb.Boot.scala にコネクションを取得する処理を書きます。

[code language="scala"] object OracleVendor extends ConnectionManager {
def newConnection(name: ConnectionIdentifier): Box[Connection] = { try { Class.forName(Props.get("oracle.db.driver") openTheBox) val dm = DriverManager.getConnection( Props.get("oracle.db.url") openTheBox, Props.get("oracle.db.user") openTheBox, Props.get("oracle.db.password") openTheBox) Full(dm) } catch { case e: Exception => e.printStackTrace; Empty } } def releaseConnection(conn: Connection) { conn.close } }

class Boot {
def boot { if (!DB.jndiJdbcConnAvailable_?) { DB.defineConnectionManager( DefaultConnectionIdentifier, OralceVendor) } ~ 中略 ~ } } [/code]

MavenでOracleドライバを引っ張ってくる

pom.xml に以下を追加

[code language="xml"] <dependency> <groupId>ojdbc</groupId> <artifactId>ojdbc</artifactId> <version>6</version> </dependency> [/code]

ただ、、mvnだとoracleドライバは引っ張ってこれないみたいなので、、ローカルリポジトリにojdbcをインストールしてあげる。。 ojdbc6.jar を C:\Temp に置いて以下を実行。

[code] mvn install:install-file -Dfile=C:\Temp\ojdbc6.jar -DgroupId=ojdbc -DartifactId=ojdbc -Dversion=6 -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true
[/code]

あんまり古いドライバだとLift実行時にエラーが吐かれるので、新しいのをもってきましょう。