android 本地更新版本,Android版本更新之本地数据库更新

2023-10-26

最近上架了一个算法学习类APP,在更新应用版本时,发现数据库依旧没有更新,还是上一个版本的数据内容,遂把这方面的内容记录下来。

PS:本人处女作APP 《算法之家》 可以在豌豆荚、360手机助手、腾讯应用宝中下载安装~

如下是父类的构造函数,所有的数据库都是继承这个父类的。

1 publicMyOpenHelper(Context context, String name, CursorFactory factory,2 intversion) {3 super(context, name, factory, version);4 //TODO Auto-generated constructor stub

5 }6

7 //笔记

8 publicMyOpenHelper(Context context, String name) {9 super(context, name,null,VERSION);10 //TODO Auto-generated constructor stub

11 }12

13 publicMyOpenHelper(Context context) {14 super(context, null,null,mVERSION);15 //TODO Auto-generated constructor stub

16 }17

18 public MyOpenHelper(Context context, String name,intversion) {19 super(context, name, null, version);20 //TODO Auto-generated constructor stub

21 }22

23 @Override24 public voidonCreate(SQLiteDatabase db) {25 //TODO Auto-generated method stub

26

27 }28

29 @Override30 public void onUpgrade(SQLiteDatabase db, int oldVersion, intnewVersion) {31 //TODO Auto-generated method stub

32

33 }

1、当我们使用new MyOpenHelper(context)去构造的时候,会经常性的执行子类中public void onCreate(SQLiteDatabase db)这个方法,因此这样可以不用更新,但是使用这样的方式去构造的数据库,用户不能update,不能insert,只能在构造的时候insert。。

2、当我们使用new MyOpenHelper(context,name)去构造的时候,只会执行一次子类中的onCreate方法,也就是说如果我们在以后升级应用时,想要更新此数据库中的内容,需要另寻他法,所以数据库的版本的重要性就体现出来了,也就是super(context, name,null,VERSION);的VERSION关键字,当系统发现该数据库版本比原应用的数据库版本高,则会自动调用onUpgrade方法,所以有了如下代码。

1 @Override2 public void onUpgrade(SQLiteDatabase db, int oldVersion, intnewVersion) {3 //TODO Auto-generated method stub

4

5 switch(oldVersion){6 case 1:7 Version2(db);8 break;9 case 2:10 Version3(db);11 break;12 case 3:13 break;14 case 4:15 break;16 default:17 System.out.println("default");18 break;19

20 }

比如原数据库版本为1,此时就会执行case 1:的指令。

在修改数据库中需要添加这样几行代码

1 private voidVersion2(SQLiteDatabase db) {2 //TODO Auto-generated method stub

3

4 db.beginTransaction();5

6 //改名数据库表

7 db.execSQL("alter table TABLE1 rename to TABLE2");8

9 //新建表单

10 db.execSQL("create table TABLE1(XX,XX)");11

12 //插入原有的数据

13 db.execSQL("insert into TABLE select * from TABLE2");14 //如果增加了列属性,则使用双引号”” 来补充原来不存在的数据15

16 //删除临时表单

17 db.execSQL("drop table TABLE2");18

19 db.setTransactionSuccessful();20 db.endTransaction();21

22 }

如此,差不多了。

原文:http://www.cnblogs.com/pngcui/p/4850861.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android 本地更新版本,Android版本更新之本地数据库更新 的相关文章

  • 如何给数据库中的表插入数据?

    R星校长 为表的所有字段插入数据 向表中插入数据最简单的方法就是使用INSERT语句 INSERT语句需要你声明要插入内容的表 table 名和内容 values 语法规则为 INSERT INTO 表名 字段名 VALUES 内容 举个例
  • uni-app引入web3在真机运行下兼容性处理方法

    uni app开发跨平台应用程序 项目搭建主要前端框是Uni app Vue3 TS Vite 项目搭建参考文章Uni app Vue3 TS Vite 创建项目 Hbuilderx版本是3 6 17 安装web3 yarn add web
  • WebRTC音频系统 peerconnection初始化

    文章目录 2 1 peerconnection conductor 2 2 PeerConnectionFactory和PeerConnection 2 2 1 CreatePeerConnectionFactory 2 2 2 PeerC
  • vue之tab栏切换

    一个简单的tab栏切换组件 由tabs以及tab pane组成 效果图 使用
  • 物联网LoRa系列-32:LoRaWAN无线智能水表如何进行水量数据采集?脉冲采集、双干簧管、磁性元件、光电转换、霍尔元件

    目录 1 无线远传智能水表概述 2 常用智能水表的发展与类型 3 智能水表数据的采集的基本原理 3 1 光电转换型原理 3 2 双干簧管数据采集的基本原理 3 3 霍尔元件型原理 4 干簧管脉冲检测的基本原理 4 1 干簧管概述 干簧管是一
  • 一种比较省内存的稀疏矩阵Python存储方案

    原文 http www pythontab com html 2014 pythonhexinbiancheng 0522 788 html 推荐系统中经常需要处理类似user id item id rating这样的数据 其实就是数学里面
  • js的数据交互

    JSP 几个内置对象 out request response session 一 application 1 介绍 application 他是代表的整个项目的全局对象 application 所有项目下面的页面共享 所有的浏览器用户 访
  • 【问题解决】VSCode ESLint 保存格式化时不生效

    问题描述 VSCode 中安装了 Prettier 和 ESLint 插件 在项目中使用了 eslintrc js 文件规范项目代码 但是保存代码时格式化并不是按该文件的配置而是按 Prettier 的配置 问题解决 修改 Settings
  • 力扣的题库突然打不开的解决办法

    问题 力扣的题目打开很慢 然后题目那是灰色 解决方案 换个浏览器 清楚浏览器缓存 如果上述方法都不可以 检查一下自己有没有安装 脚本 如果有的话可以停用他 在浏览器右上角 有管理扩展的地方 停用一下油猴这个扩展 我下面的是已经删除之后的图
  • batocera 完整包_Batocera Plus 可能是现如今最强最全最好用的模拟器集成系统!

    Btocera PLUS系统开机界面 相信玩Batocera的圈子里面Batocera Plus 绝对是青出于蓝而胜于蓝的超级强劲改版 我们来细说为什么Batocera Plus如何受众人爱戴 甚至超过了原版的Batocera 自batoc
  • libgcrypt-1.10.2编程-计算摘要

    文章目录 使用libgcrypt计算摘要 一 计算少量数据摘要 二 计算大量数据摘要 在main函数中调用 使用libgcrypt计算摘要 libgcrypt编程计算摘要的方式有2种 一种可用来计算小数据的摘要 如字符串 一种可用来计算大数
  • edl后变暗后的解决方法

    由于edl类似于ssao 会变暗 这时候调整亮度时 可以类似于hdr 高动态范围转LDR 只是不色调映射就可以了 rgb各分量同时提高同一个比例即可 这样既可以变亮且不溢出 也可以不改变颜色 当然 可能会出现类似于深绿变浅绿的现象 但是视觉
  • 基于CH552G主控的开源九键小键盘(资料齐全)

    Content 1 前言 2 CH55X Arduino平台环境搭建 2 1 常规安装 2 2 HFS挂载本地服务器安装 3 例程使用 3 1 工程下载及编译 3 2 程序烧录 1 前言 芯片选型 CH552G 本文主要解决Arduino下
  • JSZIP+StreamSaver下载大文件打包遇到的问题

    背景 公司项目为了节约服务器硬盘 需要从微信企业微盘下载大批量文件 然后 进行客户端打包 问题 根据StreamSaver的代码演示例子 是通过指定Blob类型进行流下载更新 我尝试了这个方法 发现一旦Blob类型大于1G的时候 Chrom
  • DC-DC与电感

    作者 AirCity 2020 2 16 Aircity007 sina com 本文所有权归作者Aircity所有 DC DC即直流 直流转换器 输入是直流电压 输出也是直流电压 DC DC有升压型boost 降压型buck和升降压型bu
  • 基于SSM的海外代购系统设计与实现

    摘 要 近年来 我国的互联网方面发展十分的迅速 短短20年 信息时代就已经展现在了我们的面前 电商 是信息时代中出现的一大产物 电商的发展在很大程度上来说的的确确的方便了我们日常的部分的生活购物行为 从1997年电商的萌芽开始发展直至今日
  • 类的公有类型(public)和私有类型(private)

    数据成员可以为公有 函数成员也可以为私有 如果数据成员为公有 那么在对象的作用域内的任何函数都可以通过对象名使用该数据成员 如果函数成员为公有 那么该函数成员只能被公有的函数通过对象名调用
  • python二元函数图像在线绘制_“绘图,让科学生动起来”:Python-matplotlib绘图(多元函数拟合-3D绘图专题)...

    作者简介 85后一名分析化学工作者及科学爱好者 深爱着北京的老北京人 爱好运动 科学 旅行 个人微信公众号 科学是什么东东 欢迎关注 搭建python matplotlib绘图平台的四个要素是什么 它们是 python软件主体 pip库管理
  • ReentrantLock 源码分析

    ReentrantLock简单使用demo如下 Lock lock new ReentrantLock lock lock try 业务逻辑 finally lock unlock 注 获取的锁代码要放到try块之外 防止获得锁代码异常 抛

随机推荐

  • Chrome开发者工具详解

    Chrome开发者工具详解 1 Elements Console Sources面板 Chrome开发者工具面板 面板上包含了Elements面板 Console面板 Sources面板 Network面板 Timeline面板 Profi
  • adb MacBook Pro上使用adb命令:Command not found或者每次使用前要source .bash_profile文件

    前言 adb MacBook Pro上使用adb命令报错 Command not found 或者每次使用前要source bash profile文件 一 解决问题1 在根路径配置 bash profile文件 如果没有 touch ba
  • python-面向对象基础-类属性&实例属性-构造&析构

    一 类的定义 class 类名 类体 class Person object pass 二 类中成员的定义 class Person object 属性 name tom age 18 height 180 方法 def eat self
  • C++堆和栈的区别和联系

    2017年09月16日 10 39 33 阅读数 1605 参考博客地址 http blog csdn net hairetz article details 4141043 http blog csdn net handsomesunsh
  • C#学习之ASP.NET概述

    ASP NET的应用 网络应用程序开发 学习ASP NET的优势 易学 设计人员和后台代码人员专注于自己的工作 原因 ASP NET将HTML页面代码和脚本代码分离 高效地创建大规模的网络应用程序 背景 自从互联网的出现 各种网络开发技术层
  • 关于ehcache使用rmi方式实现分布式缓存时遇到的问题

    业务场景 一个架构较老的系统 由于在正式环境中需要搭建集群环境 目前使用echcache来作为缓存 为了减少代码修改 使用了RMI方式来实现集群 使用了被动发现和注册的方式 配置如下
  • Ansible Lookup

    1 文件内容的读取 hosts all vars contents lookup file etc foo txt tasks debug msg the value of foo txt is contents Note 切记读取的是本地
  • 使用gpt绘制奥特曼

    public class Ultraman extends JPanel public void paint Graphics g Color silver new Color 192 192 192 画头 g setColor Color
  • C语言顺序表中删除值为x的元素

    要求时间复杂度为O n 空间复杂度为O 1 实现代码如下 删除线性表中为x的元素 void deleteX SqList L int x int k 0 for i 0 i
  • 全球及中国工业互联网产业运行态势与布局状况调研报告2022-2028年

    全球及中国工业互联网产业运行态势与布局状况调研报告2022 2028年 修订日期 2022年4月 出版单位 鸿晟信合研究院 对接人员 周文文 报告价格 纸质版6500元 电子版6800元 纸质 电子版7000元 有折扣 内容部分有删减 了解
  • 1、网络隧道技术

    网络隧道技术简介 隧道技术 Tunneling 是一类网络协议 它是一种数据包封装技术 它将原始IP包 其报头包含原始发送者和最终目的地 封装在另外一个数据包 称为封装的IP包 的数据净荷中进行传输 使用隧道的原因是在不兼容的网络上传输数据
  • CVE20190708复现

    一 实验环境 基于虚拟机运行 VMware 1 靶机 ip 192 168 8 2 测试机 192 168 8 3 将两个虚拟机设置于同一个网段中 a 在虚拟网络编辑器中 将VMnet0采用桥接模式 并桥接到网线网上 b 设置win7为动态
  • 动态规划浅析

    leetcode53 最大子序和 leetcode62 不同路径 leetcode300 最长递增子序列 动态规划要解决的都是一些问题的最优解 即从很多解决问题的方案中找到最优的一个 当我们在求一个问题最优解的时候 如果可以把这个问题分解成
  • npm install 错误 安装 chromedriver 失败的解决办法

    npm 安装 chromedriver 失败的解决办法 npm 安装 chromedriver 时 偶尔会出错 错误提示类似于 npm ERR chromedriver 2 35 0 install node install js 经分析发
  • cicd 07--构建前后端一体化自动化发布流程

    cicd 07 构建前后端一体化自动化发布流程 1 介绍 2 构建过程 2 1 功能说明 2 2 jenkins gitlab 配置 2 3 测试结果 3 注意事项 4 说明 1 介绍 cicd 04 构建自动化发布流程 介绍了一种通用的自
  • NLP扎实基础3:TF-IDF文本特征提取

    TF IDF简介 TF IDF使用流程 见上图 步骤如下 根据全部语料每个词对应的TF IDF值 每个句子对应全部语料的one hot编码 将TF IDF编码作为特征 Python代码 流程很简单 就不复现了 这里有两个使用的方式 第一种是
  • Flutter中如何强制某个页面横屏

    在很多文章中 提到了Flutter中强制某个页面横屏使用如下代码 SystemChrome setPreferredOrientations DeviceOrientation portraitUp DeviceOrientation po
  • 零基础学员的shell脚本的写作思路详解

    前言 这两天一直再批改学员的脚本作业 大多数学员写的很好 有的学员写的不太好 还有一些还没有入门到学员不知道脚本该咋写 不知道脚本怎么写的学员 绝大多数犯了一个错误 一上来就把脚本想的太复杂了 我们今天单独聊聊这个问题 脚本错误范例示范 写
  • c++面试知识点补充

    1 说说c 结构体和c结构体的区别 1 c的结构体内不允许有函数存在 c 允许有内部成员函数 且允许该函数是虚函数 2 c的结构体对内部成员变量的访问权限只能是public 而c 允许public protected private三种 3
  • android 本地更新版本,Android版本更新之本地数据库更新

    最近上架了一个算法学习类APP 在更新应用版本时 发现数据库依旧没有更新 还是上一个版本的数据内容 遂把这方面的内容记录下来 PS 本人处女作APP 算法之家 可以在豌豆荚 360手机助手 腾讯应用宝中下载安装 如下是父类的构造函数 所有的