我创建了一个应用程序,其中我使用SQLiteDatabase自定义类,显然是为了管理SQLite数据库。
我创建了一个" ChangeLog"用于检查我的架构的类修改。 例如:
如果用户安装了我的应用程序的最新版本,我会从我的ChangeLog类调用applyModifies()方法,以便应用多个修改和 ALTER " table01",例如。 (要做到这一点,我重命名旧表,我创建新表,我将所有记录复制到新表,我删除旧表,最后,我用原始名称重命名新表。 )
我需要在 applyModifies()( update0001(), update0002()等内部调用几个方法。 如果第一种方法失败,则下一种方法不必开始。
//[... ChangeLog Class - Methods ...]
public void applyModifies() {
int version = checkVersion(); //Take version release of my app
try {
boolean b0001 = update0001();
boolean b0002 = update0002();
boolean b0003 = update0003();
} catch (Exception e) {
//
}
}
public boolean update0001() {
//Verify actual table's schema and apply modifies, if needed
//I use DB transaction to execute queries in block and wait for a result
return result;
}
通常情况下,我可以这样做:
boolean b0001 = update0001();
if (b0001) {
boolean b0002 = update0002();
} else {
//Previous method fails
}
但它不是一个好的解决方案,因为我需要添加几个更改日志修改才能应用,而我还不知道如何实现它。