4

ScalikeJDBC と SQLite を動作させようとしています。提供された例に基づいた簡単なコードを用意します。

import scalikejdbc._, SQLInterpolation._

object Test extends App {
  Class.forName("org.sqlite.JDBC")
  ConnectionPool.singleton("jdbc:sqlite:test.db", null, null)

  implicit val session = AutoSession

  println(sql"""SELECT * FROM kv WHERE key == 'seq' LIMIT 1""".map(identity).single().apply()))
}

例外で失敗します:

Exception in thread "main" java.sql.SQLException: Cannot change read-only flag after establishing a connection. Use SQLiteConfig#setReadOnly and QLiteConfig.createConnection().
at org.sqlite.SQLiteConnection.setReadOnly(SQLiteConnection.java:447)
at org.apache.commons.dbcp.DelegatingConnection.setReadOnly(DelegatingConnection.java:377)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setReadOnly(PoolingDataSource.java:338)
at scalikejdbc.DBConnection$class.readOnlySession(DB.scala:138)
at scalikejdbc.DB.readOnlySession(DB.scala:498)
...

scalikejdbc 1.7 と 2.0 の両方を試しましたが、エラーが残ります。私が使用するsqliteドライバーとして"org.xerial" % "sqlite-jdbc" % "3.7.+"

エラーを修正するにはどうすればよいですか?

4

4 に答える 4

1

を使用していることが原因であることがわかりました"org.xerial" % "sqlite-jdbc" % "3.7.15-M1"。このバージョンはまだ不安定なようです。

"3.7.2"@kawty と同じように使用します。

于 2014-04-30T16:17:07.010 に答える