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