我正在使用 OrmLite 来处理 Android 应用程序中的持久性。
OrmLite 文档讨论了DAO Enabled Objects,并提供了一个类,您可以extend
告诉 OrmLite 您希望Dao
从数据库中检索到的类的实例上的集合。
这有一些不错的属性,比如让object.update()
和object.refresh()
DTRT。
对于非数据库生成的对象,object.setDao(Dao)
您可以使用一种方法。
Dao
在开始时将 a 初始化为类上的静态成员变量会不会有问题?
public class Order extends BaseDaoEnabled<Order, Integer> {
protected static globalDao = null;
public Order() {
// Set non-static dao used by parent BaseDaoEnabled
this.dao = globalDao;
}
在程序的主类中,我将globalDao
使用适合该对象的 Dao 进行一次初始化。
这将有一个很好的特性,即允许我们在给定类的实例的情况下执行数据库操作,即使没有访问OrmLiteSqliteOpenHelper.getDao()
.
我认为这是线程安全的,因为我对DaoManager的阅读表明每个类通常只有一个 Dao。