zoukankan      html  css  js  c++  java
  • 04_数据库升级onUpgrade&ondowngrade

    如果想操作多个数据库就不要把数据库的名字写死了

        public MyOpenHelper(Context context, String name){
        //第一个参数上下文
            //第二个参数  数据库的名字 如果传入null 就是在内存中创建一个数据库 内存中的数据库在应用退出之后 数据就会丢失
            //如果是聊天记录之类我真正的想给它存起来,下一次再启动还想用那你就要给它存储到一个具体的数据库里面。这个名字就一定要传进来
            //第三个参数 游标工厂 如果使用系统默认的游标工厂就传入null
            //第四个参数  数据库的版本号 用版本号来控制数据库的升级和降级 版本号从1开始
            super(context, "itheima.db", null, 1);
            // TODO Auto-generated constructor stub
        }

    把"itheima.db"用String name代替而不是写死了就可以操作多个数据库了.如果写死的话拿到的SQLiteDatabase实际上操作的都是同一个数据库就是这个itheima.db.当数据库文件itheima.db第一次创建的时候,它会走onCreate().一旦我这个数据库文件创建起来之后,再去运行这个项目,这个onCreate()就不会走了.因为它只是当数据库文件第一次创建的时候才会执行onCreate().

    onCreate()就是当数据库文件第一次创建的时候被执行。onCreate()做表结构的初始化也可以丢一些初始化的数据。

    当数据库升级的时候就会走这个onUpgrade

    数据库升级的SQL语句什么时候会被调用?数据库升级就是版本号增加的时候。

            super(context, "itheima.db", null, 2);

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    第一个参数SQLiteDatabase执行具体的SQL.

  • 相关阅读:
    PHP中each与list用法分析
    三大范式通俗讲解
    数据库三大范式详解
    利用JS制作简便计算器
    CSS下拉列表错误纠正
    下拉列表
    CSS选择器、标签,div的位置。
    php注册审核
    php分页查询
    php投票练习
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/7039459.html
Copyright © 2011-2022 走看看