試圖使ScalikeJDBC和SQLite正常工作。必須根據提供的例子一個簡單的代碼: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.+"
。
我該如何解決這個錯誤?
我試過用你的代碼,它工作正常。 https://github.com/tkawachi/sqlite-scalikejdbc-test請詳細說明。 – kawty
不要選擇? – dmitry
號碼自己試試:) – kawty