我真的很喜欢主动记录的想法,我要实现以下设计:
所有具体模型都扩展了抽象模型,抽象模型具有基本的crud操作。
下面是模型上的示例保存函数:
public void save(){
try {
getDao().createOrUpdate(this);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这里是getdao():
private static Dao<Model, Integer> getDao(Context context){
Dao<Model, Integer> result = null;
DatabaseHelper dbHelper = new DatabaseHelper(context);
try {
result = dbHelper.getDao(Model.class);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
如你所见,我有模特班。除了将类传递给getdao函数之外,是否还有其他选项或模式来实现以下设计?
最佳答案
不要将getDao
方法设为静态,然后:
result = dbHelper.getDao(getClass());
编辑:
在这种情况下,您必须以某种方式告诉get dao方法要获取什么dao。你可以用这样的方法:
private static <T> Dao getDao(Context context, T object){
try {
return new DatabaseHelper(context).getDao(object.getClass());
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
关于android - 带有ORMLite的ActiveRecord,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10178580/