SQLite数据库升级

来源:互联网 发布:mac svn checkout 编辑:程序博客网 时间:2024/05/14 06:52
import android.os.Bundle;import android.support.v7.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        MyDataBaseOpenHelper helper = new MyDataBaseOpenHelper(getApplicationContext());    }}


import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;//原文参考:http://www.cnblogs.com/liqw/p/4264925.htmlpublic class MyDataBaseOpenHelper extends SQLiteOpenHelper {    private static final String TAG = "MyDataBaseOpenHelper";    private static final int FIRST_DATABASE_VERSION = 1;//FIRST_DATABASE_VERSION 第一次安装的数据库版本 不需要修改    private static final int DATABASE_VERSION = 1;//DATABASE_VERSION 每次升级数据库应该比上个版本高即可   每次+1 1→2→3→4    public MyDataBaseOpenHelper(Context context) {        super(context, "SQLite.db", null, DATABASE_VERSION);    }    @Override    public void onCreate(SQLiteDatabase sqLiteDatabase) {        Log.i(TAG, "创建Account表  创建字段User和Name");        sqLiteDatabase.execSQL("create table if not exists Account(User TEXT,Name TEXT)");        //FIRST_DATABASE_VERSION    第一次安装的数据库版本 不需要修改        //DATABASE_VERSION          每次升级数据库应该比上个版本高即可   每次+1        onUpgrade(sqLiteDatabase, FIRST_DATABASE_VERSION, DATABASE_VERSION);    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        for (int i = oldVersion; i < newVersion; i++) {            switch (i) {//这个i判断的是旧的版本 即之前安装的版本                case 1:                    upgradeToVersion2(db);//旧版本是1的时候升级到2  新增字段性别Sex                    break;                case 2:                    upgradeToVersion3(db);//旧版本是2的时候升级到3  新增字段年龄Age                    break;                case 3:                    upgradeToVersion4(db);//旧版本是3的时候升级到4  新增字段城市City                    break;                default:                    Log.i(TAG, "default");                    break;            }        }        Log.i(TAG, "------------------------------------------------ 当前安装的版本:" + DATABASE_VERSION);    }    private void upgradeToVersion2(SQLiteDatabase db) {        Log.i(TAG, "创建字段-性别Sex");        db.execSQL("ALTER TABLE Account ADD COLUMN Sex TEXT;");    }    private void upgradeToVersion3(SQLiteDatabase db) {        Log.i(TAG, "创建字段-年龄Age");        db.execSQL("ALTER TABLE Account ADD COLUMN Age TEXT;");    }    private void upgradeToVersion4(SQLiteDatabase db) {        Log.i(TAG, "创建字段-城市City");        db.execSQL("ALTER TABLE Account ADD COLUMN City TEXT;");    }}

第一次安装时数据库版本是: 1数据库版本改为2  覆盖安装数据库版本改为3  覆盖安装数据库版本改为4  覆盖安装I/MyDataBaseOpenHelper: 创建Account表  创建字段User和NameI/MyDataBaseOpenHelper: ------------------------------------------------ 当前安装的版本:1I/MyDataBaseOpenHelper: 创建字段-性别SexI/MyDataBaseOpenHelper: ------------------------------------------------ 当前安装的版本:2I/MyDataBaseOpenHelper: 创建字段-年龄AgeI/MyDataBaseOpenHelper: ------------------------------------------------ 当前安装的版本:3I/MyDataBaseOpenHelper: 创建字段-城市CityI/MyDataBaseOpenHelper: ------------------------------------------------ 当前安装的版本:4第一次安装时数据库版本是: 4I/MyDataBaseOpenHelper: 创建Account表  创建字段User和NameI/MyDataBaseOpenHelper: 创建字段-性别SexI/MyDataBaseOpenHelper: 创建字段-年龄AgeI/MyDataBaseOpenHelper: 创建字段-城市CityI/MyDataBaseOpenHelper: ------------------------------------------------ 当前安装的版本:4


Log打印图片

原创粉丝点击