重用 SQLite 连接还是每次都重新连接?

Enz*_*nzo 5 java windows sqlite

我正在制作一个使用 SQLite 数据库来存储产品信息的 Java 应用程序。为了获取信息,我创建了一个带有静态方法的类和一个静态变量,private static Connection c以便它在程序结束之前保持活动状态。

public static void Init() {
    try {
        Class.forName("org.sqlite.JDBC");
        c = DriverManager.getConnection("jdbc:sqlite:test.db");
        crearTablas();
    } catch (Exception e) {
        System.err.println(e.getClass().getName() + ": " + e.getMessage());
        System.exit(0);
    }
    System.out.println("Opened database successfully");
}
Run Code Online (Sandbox Code Playgroud)

执行多个查询。我应该在每个查询结束时关闭数据库连接,还是保持活动状态并重用(在我停止使用带有静态方法的程序时关闭)?

该应用程序适用于 Windows 系统(计算机商店的库存控制),不适用于手机。

CL.*_*CL. 6

SQLite 的最佳实践是在程序的整个生命周期内保持一个连接。关闭和打开连接不会节省太多内存,因为 SQLite 不会保留太多状态(唯一重要的内存使用是页面缓存,其大小可以配置),以及这些操作(例如重新读取数据库结构)的时间) 比将要使用的内存要糟糕得多。

至于并发性,有多个打开的连接(来自单个进程或来自多个进程)不会有问题,因为只有在事务处于活动状态时数据库才会被锁定。


Yan*_*eau 3

SQLite 的最佳实践是在执行每个函数后关闭连接,并为某个函数打开一次连接。通过关闭和打开连接,您将节省内存,并且这些操作的时间不如将要使用的内存重要。

您可以参考这篇文章了解 SQLite 的最佳实践。