android - Android抽象类SQLiteOpenHelper中的version是什么意思

标签 android sqliteopenhelper

在虚类SQLiteOpenHelper的构造函数中有一个参数叫做version(如下图)

public SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version) {
        this(context, name, factory, version, null);
    }

我想知道版本的含义是什么?有人可以帮我吗?

最佳答案

它是您随应用程序一起提供的数据库版本。所以将来如果你想添加一个表或删除一个列或任何与以前的数据库版本不同的东西。这个版本号会派上用场。

这是我如何在我的应用程序升级时操纵数据库的示例: 该方法由框架定义,onUpgrade()

类级别变量:

private static final int DATABASE_VERSION = 4;

检查当前版本:

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            if (oldVersion < 2) {
                db.execSQL(DATABASE_CREATEX);
            }
            if (oldVersion < 3) {
                db.execSQL(DATABASE_CREATEC);
            }
            if (oldVersion < 4) {
                final String ALTER_TBL = "ALTER TABLE " + DATABASE_TABLE1
                        + " ADD COLUMN Vcost text;";
                final String ALTER_TBL1 = "ALTER TABLE " + DATABASE_TABLE1
                        + " ADD COLUMN Vmedicine text;";
                db.execSQL(ALTER_TBL);
                db.execSQL(ALTER_TBL1);

                final String ALTER_TBL2 = "ALTER TABLE " + DATABASE_TABLE2
                        + " ADD COLUMN Dcost text;";
                final String ALTER_TBL3 = "ALTER TABLE " + DATABASE_TABLE2
                        + " ADD COLUMN Dmedicine text;";
                db.execSQL(ALTER_TBL2);
                db.execSQL(ALTER_TBL3);

            }

        }

因此它会根据数据库的所有版本进行检查,并根据设备上存在的当前版本进行操作。

关于android - Android抽象类SQLiteOpenHelper中的version是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20879392/

相关文章:

java - 关闭应用程序后服务未运行

android - 如何让移动网站的访问者离线访问 CouchDB 数据?

android - LG手机无法访问SqLite数据库

java - 我为本地 sqlite 数据库创建了应​​用程序,但它没有运行。请告诉我解决方案

javascript - Android jQuery fadeIn 奇怪的行为

android - 更改 Android 上的导航栏图标颜色

java - 安卓工作室 : Failed to load JVM DLL

android - SQLiteDatabase.openDatabase 与 SQLiteOpenHelper.getReadableDatabase

android - SQLiteOpenHelper 多个内存数据库

sqlite - Android 中存在数据库问题的应用程序类