【发布时间】:2014-08-06 08:11:02
【问题描述】:
在 android 中实现 SQLite 数据库时 在我的应用程序中,我有 5 个不同的数据库表。 我找到了两种实现方式
1) 为每个表和各自的 SQLiteOpenHelper 实现创建不同的数据库。
2) 在其中创建 1 个数据库和仅 1 个 SQLiteOpenHelper 实现,创建所有必需的表
我对上述方法有以下疑问。
a) SQLiteDatabase db = this.getReadableDatabase(); 将获取 RAM 中的数据库以对其进行操作
在情况1)我们为每个表都有一个单独的数据库,因此它将在内存中加载相应的数据库?
在案例 2)我们有一个包含所有表的数据库,所以所有表都将进入 RAM 中?
b) 情况 2 如果一个表中的一个特性更新而第二个表和第一个特性中的另一个特性完成了它的任务并在数据库上调用 close 那么仍在处理中的第二个特性会发生什么?会有例外吗?
【问题讨论】:
-
管理多个数据库需要处理所有数据库(打开、关闭等)。 RAM 中的数据库数据量是相同的。但是你会有更多的数据库对象
-
@1) 哈哈哈哈为了什么?你将如何使用 join 语句? ... @a) 谁在乎 @b) 使用 ContentProvider,CP 内只有一个 db 类的实例,根本不会在 db 实例上调用 close
标签: android database multithreading sqlite