【发布时间】:2013-09-19 15:30:49
【问题描述】:
我正在使用 OrmLite 来处理 Android 应用程序中的持久性。
OrmLite 文档讨论了DAO Enabled Objects,并提供了一个类,您可以通过extend 告诉 OrmLite 您希望在从数据库中检索到的类的实例上设置Dao。
这有一些不错的属性,比如让object.update() 和object.refresh() DTRT。
对于非数据库生成的对象,可以使用object.setDao(Dao) 方法。
在开始时将Dao 初始化为类的静态成员变量会不会有问题?
public class Order extends BaseDaoEnabled<Order, Integer> {
protected static globalDao = null;
public Order() {
// Set non-static dao used by parent BaseDaoEnabled
this.dao = globalDao;
}
在程序的主类中,我将使用适合对象的 Dao 初始化一次 globalDao。
这将有一个很好的特性,即使没有访问OrmLiteSqliteOpenHelper.getDao(),我们也可以在给定类实例的情况下执行数据库操作。
我认为这是线程安全的,因为我对DaoManager 的阅读表明无论如何每个班级通常只有一个 Dao。
【问题讨论】:
-
如果对你有帮助记得采纳我的回答。谢谢。
标签: java android database concurrency ormlite