原始完成于: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移动开发之【Android实战项目】渐变的TextView小漂亮代码
  2. Android 常用代码大集合
  3. Android Gallery3D效果 教程 案例 代码
  4. Android为按钮添加相应事件的代码
  5. 【FAQ】Ubuntu环境下ant编译android代码问题
  6. 如何获取Android原生代码所有Branchs和Tags
  7. Android系统进程Zygote启动过程的源代码分析(2)

随机推荐

  1. Android ListView的item点击无响应的解决
  2. android Recyclerview实现类似朋友圈点击
  3. Android:IPC之AIDL的学习和总结
  4. 为你的APK进行数字签名
  5. android 中edittext设置不弹出软键盘
  6. Android加密之全盘加密详解
  7. Android WebView调用Js设置byte[]给Img s
  8. Manifest中Activity的一些配置
  9. Android 中的 Drawable
  10. Android系统层次结构及分析