原始完成于:2015-04-2719:28:22

提供一种思路,优雅的处理Android数据库升级的问题,直接上代码:

 1 package com.example.databaseissuetest; 2  3 import android.content.Context; 4 import android.database.sqlite.SQLiteDatabase; 5 import android.database.sqlite.SQLiteOpenHelper; 6 import android.text.TextUtils; 7 import android.util.Log; 8 9 public class DatabaseHelper extends SQLiteOpenHelper { 10 public static final String DB_NAME = "test_db"; 11 12 private static final String[] COL_SQLS = { 13 "create table test_tb (id integer primary key autoincrement, name text, age int)", 14 "alter table test_tb add class text", 15 "alter table test_tb add friends integer default 3", 16  }; 17 18 public DatabaseHelper(Context context) { 19 super(context, DB_NAME, null, COL_SQLS.length); 20 Log.e("David", "DatabaseHelper"); 21  } 22 23  @Override 24 public void onCreate(SQLiteDatabase db) { 25 Log.e("David", "onCreate"); 26 onUpgrade(db, 0, COL_SQLS.length); 27  } 28 29  @Override 30 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 31 Log.e("David", "onUpgrade oldVersion = " + oldVersion); 32 Log.e("David", "onUpgrade newVersion = " + newVersion); 33 for (int i = oldVersion; i < COL_SQLS.length; i++) { 34 String sql = COL_SQLS[i]; 35 if (!TextUtils.isEmpty(sql)) { 36  db.execSQL(sql); 37  } 38  } 39  } 40 }

更多相关文章

  1. Android(安卓)TextView属性ellipsize多行失效的解决思路
  2. Android控件_ProgressBar使用
  3. AutoCompleteTextView(自动完成文本框)
  4. Android(安卓)自定义CheckBoxPreference的CheckBox复选框
  5. Android(安卓)Provision (Setup Wizard)
  6. android中流媒体
  7. 使用Android内部的DownloadProvider下载文件,并获取cache权限
  8. 读懂Android(安卓)(1):使用Android内部的DownloadProvider下载文
  9. Android面试心得和应对思路

随机推荐

  1. Android实现定时器的几种方法
  2. Android中导入工程出现Project has no de
  3. Android(安卓)Studio 3.1.3 使用NDK 编译
  4. android 屏蔽指定activity启动(程序锁)
  5. 长聚微嵌 DMA-210U Android(安卓)入门第
  6. 处女男学Android(一)---Configuration类简
  7. 两个Android工程之间的调用
  8. android小游戏制作基础,View实现游戏布局
  9. Android(安卓)编程下通过 Theme 和 Style
  10. Android之代码写布局