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.