最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Android中数据库升级

来源:动视网 责编:小采 时间:2020-11-09 14:14:44
文档

Android中数据库升级

Android中数据库升级:public class MySQLiteHelper extends SQLiteOpenHelper { public static final String span style=font-family: Arial, Helvetica, sans-serif;SQL_CREATE/spanspan style=font-family: Arial, Helvetica, sans-serif;= create table news ( /span + _id in
推荐度:
导读Android中数据库升级:public class MySQLiteHelper extends SQLiteOpenHelper { public static final String span style=font-family: Arial, Helvetica, sans-serif;SQL_CREATE/spanspan style=font-family: Arial, Helvetica, sans-serif;= create table news ( /span + _id in


public class MySQLiteHelper extends SQLiteOpenHelper { public static final String span style=font-family: Arial, Helvetica, sans-serif;SQL_CREATE/spanspan style=font-family: Arial, Helvetica, sans-serif;= create table news ( /span + _id in

public class MySQLiteHelper extends SQLiteOpenHelper { 
 
 public static final String SQL_CREATE= "create table news (" 
 + "_id integer primary key autoincrement, " 
 + "nametext, " 
 + "agetext, )"; 
 
 public MySQLiteHelper(Context context, String name, CursorFactory factory, 
 int version) { 
 super(context, name, factory, version); 
 } 
 
 @Override 
 public void onCreate(SQLiteDatabase db) { 
 db.execSQL(SQL_CREATE); 
 } 
 
 @Override 
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
 } 
 
} 
当我们如上创建了个SQLiteHelper,我们知道会在本地的目录database中生成了个.db数据库文件! 可是我们遇到版本迭代往往要做更多的事情 这时候的会再创建个新的数据库
这时候我们编译完成之后发现没有在database相对应的目录下生成一个相对应的表。当然我们在调试代码的时候可以清楚应用数据这样重新运行的时候会把onCreate方法再次执行一次那当然就会把未生成成功的表生成出来,可以在用户迭代更新应用的时候总不能每次都清楚数据是吧! 所以:
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 onCreate(db); 
} 
主要思路就是更新version,就是说你用户现有装的app上version是1的时候,在迭代版本更新的时候要更新version为>1的值 这样我们在new MySQLiteHelper() 的时候就会执行onUpgrade()方法,然后在在该方法中写入相对应的操作就会在database下生产相对应的表而不需要用户去清除应用的数据。
当然这种方法有一个很严重的弊端就是 可能我们在发布版本的时候忘记修改该version导致无法操作数据引起一系列不可收拾的bug。 所以推荐使用LitePal开源库进行对数据库操作!
详情可见 点击打开链接

文档

Android中数据库升级

Android中数据库升级:public class MySQLiteHelper extends SQLiteOpenHelper { public static final String span style=font-family: Arial, Helvetica, sans-serif;SQL_CREATE/spanspan style=font-family: Arial, Helvetica, sans-serif;= create table news ( /span + _id in
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top