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

我能够亲自使其工作的唯一方法是在数据库本身上执行如下查询:

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