SQLite JDBC设置日志模式

4
我正在使用JDBC对SQLite进行第一次纯内存数据库试验。由于我需要非常快的插入速度,因此尝试相应地设置配置。我发现下面的代码仅在设置JournalMode时失败。请参考下面显示的方法。变量con和isConnected被定义为类变量,并且未在此处显示。
谢谢
Rolf
public Boolean connect() {
    try {
         Class.forName("org.sqlite.JDBC");      // sqlitejdbc_3.7.2
        // Set all pragmas
         SQLiteConfig config = new SQLiteConfig();

         // This statement (JournalMode setting) causes a fail
         // Without that statement the connection can be established
         // ==> java.sql.BatchUpdateException: batch entry 0: query returns results
         config.setJournalMode(JournalMode.MEMORY);  

         config.setTempStore(TempStore.MEMORY);
         config.setSynchronous(SynchronousMode.OFF);
         config.enforceForeignKeys(false);
         config.enableCountChanges(false);

         con = DriverManager.getConnection("jdbc:sqlite::memory:", config.toProperties()); 

         isConnected = true ;
         return  true ;
    }
    catch (Exception e) {
        LogMessages.instance().print(0, LogMessages.MSG_SEVERITY.ERROR, e.getMessage() + "\n");
        e.printStackTrace() ;
        return false ;
    }

}
1个回答

0

我有同样的问题,但是有另一种方法可以禁用它。在打开连接后,您可以执行此查询: PRAGMA journal_mode=MEMORY;


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接