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.html
public 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和Name
I/MyDataBaseOpenHelper: ------------------------------------------------ 当前安装的版本:1
I/MyDataBaseOpenHelper: 创建字段-性别Sex
I/MyDataBaseOpenHelper: ------------------------------------------------ 当前安装的版本:2
I/MyDataBaseOpenHelper: 创建字段-年龄Age
I/MyDataBaseOpenHelper: ------------------------------------------------ 当前安装的版本:3
I/MyDataBaseOpenHelper: 创建字段-城市City
I/MyDataBaseOpenHelper: ------------------------------------------------ 当前安装的版本:4
第一次安装时数据库版本是: 4
I/MyDataBaseOpenHelper: 创建Account表 创建字段User和Name
I/MyDataBaseOpenHelper: 创建字段-性别Sex
I/MyDataBaseOpenHelper: 创建字段-年龄Age
I/MyDataBaseOpenHelper: 创建字段-城市City
I/MyDataBaseOpenHelper: ------------------------------------------------ 当前安装的版本:4