gpt4 book ai didi

java - SQLite 连接和资源,良好实践

转载 作者:搜寻专家 更新时间:2023-11-01 08:51:27 24 4
gpt4 key购买 nike

以下场景是否是一种好的做法,它是否有任何缺点或错误?

  1. 一个单例 DatabaseHelper 扩展 SQLiteOpenHelper

  2. 在我的 DAO 类中,我调用 databaseHelper.getWritableDatabase() 返回 SQLiteDatabase

  3. DatabaseHelper 或任何 SQLiteDatabase 实例都没有手动 close()

所以这基本上应该在应用程序的整个生命周期内保持连接。我认为当应用程序被销毁时,数据库连接将自动关闭并释放资源。我也认为它是线程安全的。

我说得对吗?

最佳答案

我正在使用与您上面介绍的类似的东西。不同之处在于,我将 SQLiteDatabase 对象保留在单例中,并为 CRUD 操作提供包装器方法,并同步其中的 SQLiteDatabase 对象,因此该类的用户将无法直接访问 SQLiteDatabase 对象,除非它是同步的。

我不确定你使用的方法是否线程安全,因为你没有发布一些代码,但如果你不使用同步机制,那么我想它不是,因为我不认为 getWritableDatabase() 方法为您做这件事。

编辑

正如 Petar 所提到的,它似乎是背后的默认同步机制,所以我认为您使用的逻辑应该可以正常工作。

关于java - SQLite 连接和资源,良好实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22996203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com