5

sqlite の読み取り専用接続と書き込み接続が必要です。書き込み接続を開くときは、排他ロックが必要です。これは動作するはずです

val config = new SQLiteConfig();
config.setLockingMode(org.sqlite.SQLiteConfig.LockingMode.EXCLUSIVE)

val connection = DriverManager.getConnection("jdbc:sqlite:" + this.getPath() +"\\" + this.dbName, config.toProperties)

残念ながら例外が発生します

Exception in thread "main" java.sql.BatchUpdateException: batch entry 0: query returns results

Sqlite jdbc SQLiteConfig クラスを使用するのではなく、プロパティを直接設定しようとしました

val prop = new Properties();
prop.setProperty("locking_mode", "EXCLUSIVE");

助言がありますか?

4

1 に答える 1

3

私が個人的にそれを機能させることができた唯一の方法は、次のようにDB自体でクエリを実行することです:

conn.createStatement().execute("PRAGMA locking_mode = EXCLUSIVE");
于 2012-07-19T22:39:13.450 に答える