首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataBaseHelper,单例还是非单例?

DataBaseHelper,单例还是非单例?
EN

Stack Overflow用户
提问于 2012-07-19 23:38:56
回答 2查看 1.4K关注 0票数 2

已经有一些关于这个主题的问题,但没有一个给出确切的理由来说明为什么应该或不应该有单个或多个databaseHelper实例。什么时候拥有多个DatabaseHelper实例是个好主意,什么时候不是。复杂度更低(如果确实是这样的话)是不是有足够的理由只有一个实例?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-20 00:08:41

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

票数 5
EN

Stack Overflow用户

发布于 2012-07-20 00:30:07

对应用程序中的每个数据库使用一个DatabaseHelper。SQLite会为你处理文件锁定(多次读取,只有一次写入),而安卓在SQLiteDatabase中使用Java锁定。然而,你仍然会遇到并发失败(同时连接一次写入)。这是您想要避免的多重连接部分,也就是由DatabaseHelper的一个实例管理的部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11564348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档