DataBaseHelper,Singleton与否?

时间:2012-07-19 15:38:56

标签: android ormlite

关于这个主题有几个问题,但是没有一个问题给出了为什么应该或不应该是databaseHelper的单个或多个实例的明确理由。 什么时候拥有DatabaseHelper的多个实例,什么时候不是。复杂性较低(如果实际情况确实如此)是一个足够的理由只有一个实例吗?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

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