我有2个课程,我们称他们为A班和B班。 他们通常是这样的:
public class A{
//...
class DbA extends SQLiteOpenHelper{
//...
}
}
public class B{
//...
class DbB extends SQLiteOpenHelper{
//...
}
}
A类的DB有一个外键,它是B类DB的主键。 问题是:系统是否保证在A之前创建B? 如果没有,如何编写正确的代码以确保在A之前创建B?
我提出了两个想法:
1
public class DBShared extends SQLiteOpenHelper{
public void onCreate(SQLiteDatabase db) {
db.execSQL(...); //create DBb
db.execSQL(...); //create DBa
}
}
public class A{
//has no inner SQLiteOpenHelper class anymore
DBShared db = new DBShared();
}
public class B{
//has no inner SQLiteOpenHelper class anymore
DBShared db = new DBShared();
}
2
public class A{
//...
class DbA extends SQLiteOpenHelper{
public void onCreate(SQLiteDatabase db) {
new B();//B creates DBb when instantiated;
}
}
}
有人会有更好的想法吗? 谢谢!