04_数据库升级onUpgrade&ondowngrade
2024-09-04 01:24:32
如果想操作多个数据库就不要把数据库的名字写死了
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.
最新文章
- UNTIY3D接入91SDK的办法
- mysql启动报错(mac)
- JavaScript实现在textbox输入时自动去数据库匹配并找出类似值列出,选择后记得将值填入本textbox及下一个textbox
- ligerui_实际项目_003:form中添加数据,表格(grid)里面显示,最后将表格(grid)里的数据提交到servlet
- Sql case when用法
- 数据导入问题:[Err] [Imp] 1406 - Data too long for column 'linkman' at row 20 [Err] [Imp] INSERT INTO `excel_eprinfo`
- 【HTML】Intermediate3:Meta Tags
- (转) Special members
- redis 中文存储乱码问题
- 浅论Javascript在汽车信号测试中的应用
- Freemarker页面静态化技术,activemq监听页面变动
- node.js的安装的配置
- Java开发笔记(七十二)Java8新增的流式处理
- Django &; JavaScript 用Ajax实现JSON数据的请求和响应
- 根据IP查地理位置信息
- mxonline 总结
- golang的urlrouter
- Linux下tar.gz 安装
- web客户端安全之跨站脚本攻击
- Informatica 常用组件Filter之二 过滤条件