我希望只读取并写入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");
有什么建议吗?
答案 0 :(得分:3)
我个人能够使其工作的唯一方法是通过在DB上执行查询,如下所示:
conn.createStatement().execute("PRAGMA locking_mode = EXCLUSIVE");