2

关于这个主题有几个问题,但没有给出明确的理由说明为什么应该或不应该有一个或多个 databaseHelper 实例。什么时候拥有多个 DatabaseHelper 实例是个好主意,什么时候不是。较低的复杂性(如果确实如此的话)是否足以成为只有一个实例的充分理由?

4

2 回答 2

5

DatabaseHelper肯定应该是单身人士。每个助手都维护到数据库的单个连接。如果您有多个助手连接到同一个数据库,则会导致并发问题。Sqlite 在单个连接下进行自己的锁定,以确保对数据库的正确并发访问,因此建议并要求对所有数据库操作使用该单个连接(以及因此该单个帮助程序)。

于 2012-07-19T16:08:41.207 回答
0

为应用程序中的每个数据库使用一个 DatabaseHelper。SQLite 为您处理文件锁定(多次读取,只有一次写入)和 Android 在 SQLiteDatabase 中使用 Java 锁定。但是,您仍然可能会遇到并发故障(同时写入的同时连接)。这是您要避免的多重连接部分,它由 DatabaseHelper 的一个实例管理。

于 2012-07-19T16:30:07.243 回答