java - 使用 JDBC 将 SQLite 数据库加载到 Java 中的内存?

标签 java scala sqlite jdbc

通常从文件中读取 SQLite 数据库。如果数据库足够大,每个操作都可能需要一个文件 I/O 操作,这可能会很慢。

但是 SQLite 提供了一种将数据库加载到内存的方法 - 可以使用类似于jdbc:memory...

的 JDBC url 访问它

例如,这个问题描述了如何使用 python 实现这一点:How to load existing db file to memory in Python sqlite3?

但是我不知道如何使用 JDBC 在 Java 或 Scala 中实现同样的事情。

有什么想法吗?

最佳答案

我刚刚尝试使用 Xerial 的 sqlite-jdbc-3.27.2.1.jar,它们似乎让我们 本地(二进制)SQLite 数据库文件恢复到 :memory: 像这样的数据库:

try (Connection conn = DriverManager.getConnection("jdbc:sqlite::memory:")) {
    try (Statement st = conn.createStatement()) {
        st.execute("restore from C:\\__tmp\\thing.sqlite");

        // let's see if we can read one of the tables
        ResultSet rs = st.executeQuery("SELECT * FROM Table1");
        while (rs.next()) {
            System.out.println(rs.getString(1));
        }
    }

} catch (Throwable e) {
    e.printStackTrace(System.err);
}

关于java - 使用 JDBC 将 SQLite 数据库加载到 Java 中的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56184821/

相关文章:

java - 使用线程进行记录插入的最佳实践?

java - 添加第二列与第一列中的重复元素

java - 如何在 Eclipse 中打开 Java、Scala 和 JRuby 的单个项目?

java - 如何在Cumulocity/Java中直接设置测量的显示名称

scala - Slick 3.0.0 - 仅使用非空值更新行

scala - 如何使用异步阶段创建 Akka 流真正的拉流

python - 在 GUI 中呈现数据的最无缝方式

android - SQLiteException - 仅在某些设备上发生

java - 在不同的类层次结构中重用相同的类

java - 通过正则表达式拆分字符串