• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Android中数据库升级

mysql 搞代码 4年前 (2022-01-09) 11次浏览 已收录 0个评论

public class MySQLiteHelper extends SQLiteOpenHelper { public static final String span style=font-family: Arial, Helvetica, sans-serif;SQL_CREATE/spans本文来源gaodaimacom搞#^代%!码&网(pan 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</span><span style="font-family: Arial, Helvetica, sans-serif">= "create table news ("  </span>            + "_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方法再次执行一次那当然就会把未生成成功的表生成出来,可以在用户迭代更新应用的时候总不能每次都清楚数据是吧! 所以:
<pre class="java">@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开源库进行对数据库操作!详情可见  点击打开链接

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Android中数据库升级
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址