gpt4 book ai didi

java - 是否可以升级使用 openorCreatedatabase sqlite 创建的数据库?

转载 作者:行者123 更新时间:2023-12-01 12:42:59 25 4
gpt4 key购买 nike

知道如何更新使用 openorcreatedatabase 创建的 sqlite 数据库。问题是该应用程序已经在市场上发布。新版本的应用程序向数据库添加了字段。

我试过这个方法

package com.example.database1;

import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;
import android.widget.Toast;

public class ManagerDB extends SQLiteOpenHelper {

private static final String dropTablaUser = "drop table if exists user;";
private static final String createTablaUser = "create table if not exists user(userid integer primary key);";
public ManagerDB(Context contexto, String namedb, CursorFactory factory,
int version) {
super(contexto, namedb, factory, version);
}

@Override
public void onCreate(SQLiteDatabase db) {
try {

db.execSQL(createTablaUser);

} catch (Exception e) {
Log.i(TAG, "Error to open or create the database" + e);
}
}

@Override
public void onUpgrade(SQLiteDatabase db, int versionafter,
int newversion) {
try {
db.execSQL(dropTablaUser);
db.execSQL(createTablaUser);


} catch (Exception e) {
Log.i(TAG, "Error to open or create the database" + e);
}

}

}

但是那些拥有旧版本的人不会更新数据库,因为它不是通过这种方式创建的,而是用openorcreatedatabase创建的

最佳答案

对于此升级,您必须手动执行版本检查和更新机制。

(如果旧数据库和 SQLiteOpenHelper 数据库具有不同的名称,这是最简单的。)

onCreate函数中,检查是否存在某个旧的数据库文件。如果它确实存在,请打开它(或者更好,attach它),并将数据复制到新数据库中。

关于java - 是否可以升级使用 openorCreatedatabase sqlite 创建的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24920014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com