Deletions are marked like this. | Additions are marked like this. |
Line 32: | Line 32: |
== アクセスの準備 == === jaybirdの準備 === libディレクトリに上記の改造をほどこしたjaybird*.jarをコピーする。 === application.confの設定 === application.confに、例えば以下のように記述する(windowsの場合) {{{ db.url=jdbc:firebirdsql:localhost:C:\\somedir\\somedb.fdb db.driver=org.firebirdsql.jdbc.FBDriver db.user=sysdba db.pass=masterkey }}} ※複数のdbを扱う方法は今のところ不明。 == アクセス == |
AnormでFirebirdにアクセス
ここでは、Anorm/Jaybird経由でFirebirdデータベースにアクセスする。
FBDriverNotCapableException
普通にAnormを使おうとすると、この例外が発生する。原因は、めったに使用されないJDBCの機能をAnormが使用しており、jaybirdではその機能を実現しておらず、この例外を発生させているからである。
具体的には、playのAnorm.scalaソース中に
val s =connection.prepareStatement(sql.query,java.sql.Statement.RETURN_GENERATED_KEYS)
という一文があるが、jaybirdのFBConnection.javaのソースでは
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException { throw new FBDriverNotCapableException(); }
としている。とりあえずここを
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException { return prepareStatement(sql); }
と変更すればよい。もちろん、変更したところでjaybirdでこの機能を使うことはできない、つまりシーケンスによる自動連番値の取得はできない。
この変更を施したものを次に添付する。 jaybird-full-2.1.6-ex.jar
アクセスの準備
jaybirdの準備
libディレクトリに上記の改造をほどこしたjaybird*.jarをコピーする。
application.confの設定
application.confに、例えば以下のように記述する(windowsの場合)
db.url=jdbc:firebirdsql:localhost:C:\\somedir\\somedb.fdb db.driver=org.firebirdsql.jdbc.FBDriver db.user=sysdba db.pass=masterkey
※複数のdbを扱う方法は今のところ不明。