Android sqliteOpenHelpers在创建新表时发生冲突

时间:2016-08-05 10:28:48

标签: java android sqlite android-sqlite sqliteopenhelper

我的应用程序中有六个sqliteOpenHelpers,我需要创建一个新表。通常,我在onCreate()和onUpgrade()以及dbVerionCode中创建它。 如果我直接安装它会很好,但是Table通过Overinstall创建失败。调用sqliteOpenHelpers'onUpgrade中的任何一个。

我尝试过制作一个BaseSqliteOpenHelper并在其中创建表,也失败了。 我怀疑这是Android的一个错误,使用这六个sqliteOpenHelpers,我该如何创建一个新表? `

public class BasePersistent extends SQLiteOpenHelper {

public BasePersistent(Context context) {
    super(context, ConstC.DB_NAME_C, null, ConstC.VERSION_C);
  }

@Override
public void onCreate(SQLiteDatabase db) {
    IMEDBFactory.onCreate(db);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  LogUtilC.LogError("dbVersion:"+db.getVersion()+this.getClass().getName().toString());
    if (newVersion >= 7) {
        db.execSQL("CREATE TABLE IF NOT EXISTS IMETokenList ('userToken' TEXT NOT NULL PRIMARY KEY,'sendMsgToken' TEXT ,'sendMsgTokenExpire' TEXT,'groupWriteToken' TEXT,'groupWriteTokenExpire' TEXT,'groupGetToken' TEXT,'groupGetTokenExpire' TEXT)");
    }
}



public class IMETokenPersistent extends BasePersistent {

public IMETokenPersistent(Context context) {
    super(context);
}


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    LogUtilC.LogError("dbVersion:" + db.getVersion() + this.getClass().getName().toString());
    if (newVersion >= 7) {
        //创建Token表
        db.execSQL("CREATE TABLE IF NOT EXISTS IMETokenList ('userToken' TEXT NOT NULL PRIMARY KEY,'sendMsgToken' TEXT ,'sendMsgTokenExpire' TEXT,'groupWriteToken' TEXT,'groupWriteTokenExpire' TEXT,'groupGetToken' TEXT,'groupGetTokenExpire' TEXT)");
    }
}
}

0 个答案:

没有答案