我有一个应用程序使用 DAO 类与 Access 数据库交互,最近我将数据库转换为 sqlite 数据库。
我不知道哪种连接方法更适合以下设计:
打开应用程序时只使用公共变量创建一个数据库连接,任何查询在运行时使用唯一的连接对象进行交互,然后关闭应用程序时关闭连接
每次运行查询之前创建数据库连接,然后在将结果集加载到内存后立即关闭数据库连接。
我有一个应用程序使用 DAO 类与 Access 数据库交互,最近我将数据库转换为 sqlite 数据库。
我不知道哪种连接方法更适合以下设计:
打开应用程序时只使用公共变量创建一个数据库连接,任何查询在运行时使用唯一的连接对象进行交互,然后关闭应用程序时关闭连接
每次运行查询之前创建数据库连接,然后在将结果集加载到内存后立即关闭数据库连接。
我建议您封装您的数据库访问,以便以后可以更改是否保持持久连接或不打开的决定。
由于您使用的是 SqlLite,我假设它是一个单用户数据库,因此并发、连接争用、锁定等不太可能成为问题。
通常,重用短运行连接的主要原因通常是在多用户 Web 或面向服务的系统上,其中可扩展性和许可考虑很重要。这似乎不适用于您的情况。. 简而言之,根据上述假设,似乎没有任何理由不在您的应用程序/用户登录会话的整个期间保持连接打开。
但是,如果您使用事务,我建议您在每次成功的原子活动后提交这些
您知道您的两个选项有 + 和 -。对于您的特殊情况,我认为每次都创建数据库连接并不是一个坏主意,因为创建与 sqlite 的连接非常快且不耗时。同样通过这种方式,您可以一次创建/关闭多个连接,这是一个很好的好处,也许您现在不这样做,但将来也许您将不得不这样做。