Android 数据表的更新的 解决方案?

在开发的过程中,我们难免遇到一些问题,比如 数据库中表结构的改变。但是表又不可以直接的alter 修改字段, 添加字段和删除字段是可以的。

我们在开发的时候,当我们修改了 APP 表中的结构,但是之前发布的低版本,还没有修改,因此 一些用户在没有删除原有数据的情况下,直接安装了我们高版本的APP,应用会直接的崩溃掉。 这是因为 数据表中的数据缓存, 再插入数据的时候, 我们的表结构已经改变量了。但是 缓存没有修改,所以直接崩溃。

修改的原理:

Android 的数据库中 DataBaseVersion, 用来处理数据库的更新, 一般是不会调用

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

		LogUtil.i("DB", "--start  alterTabel");

		updateTables(db);

	}

但是,当当前安装的APP的DataBaseVersion  高于 老版本的DataBaseVersion, 就会调用 onUpgrade() 方法。

所有我们 只需要修改 DataBaseVersion 的 值即可!

里面的处理方案: 比较简单 就是 删除缓存中的表, 之后再重新创建表。就可以了!

时间: 2024-12-16 22:05:56

Android 数据表的更新的 解决方案?的相关文章

通过 Statement 执行数据表的更新操作

通过Statement来执行SQL的Insert,Delete,Update操作 package xuezaipiao; /** * 通过JDBC向数据表中添加数据 * 1.获取数据库连接 * 2.Statement : 用于执行SQL的对象 * --通过 Connection 的createStatement() 方法来获取 * --通过executeUpdate(sql) 可以执行SQL语句 * --注意SQL 是INSERT.UPDATE.DELETE,不能是SELECT * 3.Conn

Android数据自己主动更新库DataAutoRefresh

非常多android应用.比方音乐播放器.视频播放器.小说阅读器或者其他须要获取本地磁盘指定数据格式数据列表的应用,在磁盘数据有变化(新增或者删除.比方下载完毕,拔TF卡.换TF卡)时.须要自己主动更新数据列表.非常多android应用都是须要用户手动去刷新才会更新列表,通过DataAutoRefresh能够实现自己主动更新. project和Demo放在GitHub上了,project在实际使用中须要不断改进,DataAutoRefresh下载地址

mysql之DDL操作--数据表

我们创建好了数据库以后,就可以创建相应的数据表,那么创建表也是属于DDL数据定义层面,接下来我们来学习一下. 1.创建数据表 创建指令:create table tb_name [表选项] 我们发现指令与数据库的创建指令是相同的,没什么大的区别. PS:当然我们创建表之前,首先先选择相应的数据库. 接下来我们创建一张学生信息表 create table student_studentinfo( id int, name varchar(5), class_id int); 关于列类型以及列约束即

优化系列 | 游戏数据表拆分优化经典案例

1. 目的通过对比测试,分析某数据表tabC拆分方案前后性能对比,确定拆分方案的可行性. 2. 方法对拆分方案前后两种类型进行对比测试.同时,每次测试中采用两种更新方式:1. 和原来类似,对数据表所有字段的更新分多次2. 对数据表所有字段的更新一次性完成 3. 环境本次测试采用线上实际数据导入.tabC表共有132万行记录,全表共100G.将所有字段重新组合,确保每个分表的实际行长度不高于8KB,拆分成3个子表,大小分别是:tabC_1.ibd 796MtabC_2.ibd 10.2GtabC_

greenDao android开源框架数据库更新表的问题

最近使用greenDao当android应用升级数据库新增表或者修改表,发现数据被清空的问题 查找资料也没有找到解决方案,最后查看代码发现需要自己修改SQLiteOpenHelper 1.找到greenDao生成的DaoMaster.java文件,里面有SQLiteOpenHelper实现 2.修改DevOpenHelper类里的   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 方法 通过old

Sqlite嵌入式数据库的安装、建库、建表、更新表结构以及数据导入导出等等详细过程记录

简介: SQLite 是实现了SQL 92标准的一个大子集的嵌入式数据库.其以在一个库中组合了数据库引擎和接口,能将所有数据存储于单个文件中而著名.我觉得SQLite的功能一定程度上居于MySQL 和PostgreSQL之间.尽管如此,在性能上面,SQLite常常快2-3倍 (甚至更多).这利益于其高度调整了的内部架构,因为它除去了服务器端到客户端和客户端到服务器端的通信. 而令人印象深刻的特点是你可将你的整个数据库系统放在其中.利用非常高效的内存组织,SQLite只需在很小的内存中维护其很小的

android sqlite关于数据表的问题

============问题描述============ 我在程序里新建了两个数据库,"book.db"和"book4.db",然后分别在其中新增了一张数据表"localbook"和"localbook4",结果在程序运行时,两张表都可以新建,但是当我向一张表中插入数据以后,另一张表就无法插入(空表,不报错),求解! 以下是我两个SQLiteOpenHelper类的代码: 第一个LocalBook类: import andro

android 一个SQLite数据库多个数据表的基本使用框架 (带demo)

android 一个SQLite数据库多个数据表(带demo) 前言        demo演示        一.搭建        二.建立实体类        三.建立数据库操作类        四.配置Application        五.使用    GitHub 前言 我的上一篇博客讲的是简单的 android SQLite 数据库的基本操作如增删改查,有兴趣的朋友可以点一下这里android 简单SQLite数据库 增删改查 但是呢,一般的项目里,一个数据库也不会只有一个数据表,

SQL快速操作技巧2_datatable批量更新到数据表

(为了给您节省时间,您可以只看高亮部分内容) 要将datatable 批量更新到数据表其实是两步: (1)将datatable快速存入一个表中: (2)根据一个数据表更新另外一个数据表: 下面细说: (1)将datatable快速存入一个表中: 1)   insert循环插入:2)   sqldataadapter.update(dataset,tablename);3)   sqlbulkcopy.WriteToServer(datatable); 1.生成测试的datatable表,表结构如