在我们写的程序中不避免的需要升级.或者说需要改变业务逻辑,那这个时候就需要修改数据库的字段,来适应不同的表结构 我们一般写数据库都是操作一个继承至 SQLiteOpenHelper 的类 然后我们需要实现它的构造方法 public MyDatabaseOpenHelper(Context context) { super(context//上下文对象, DB_NAME//数据库名称, null, version//版本号); } 然后我们需要注意的是一个方法 public void onCrea…
public class SqliteHelp extends SQLiteOpenHelper { /* * context:创建数据库所需的 上下文对象 * name: 数据库名字 * factory 游标 查询的时候使用 * version 指定数据库的版本高版本会自动更新 低版本的(自定义调用 铺面ongrade) * */ public SqliteHelp(Context context, String name, CursorFactory factory, int version…
软件迭代过程中,业务不断更新,也要求软件持续更新.相应地,数据库更新升级也是不可避免的一个环节.Android作为客户端应用,数据库升级相对于服务端来说会麻烦一些.常见的升级方式有: 1.删除旧表和数据,创建新表.优点是简单方便,缺点是丢失了旧数据.适用于应用数据依赖度低的情况. 2.在代码中兼容处理各版本数据库,创建新表,迁移旧数据到新表.优点是保留了旧数据,缺点是需要处理兼容个版本数据库差异,比较麻烦.如果通过代码来记录维护版本差异,会导致代码臃肿且极易出错. 本文介绍一种简单无缝的数据库升…
这两天遇到一个棘手的问题,在往sqlite数据库中添加数据时,总是添加失败,但是添加数字却可以.原来是添加时,忘记添加''号修饰. 修改前: 修改后: 这样就完美解决.…
目前公司android项目普遍使用框架对数据库进行操作,数据库表与数据实体都具有严格的对应的关系,但是数据库的升依赖不同版本间的升级脚本,如果应用跨多版本进行升级时,当缺失部分升级脚本时就会导致应用异常. 依赖脚本升级方案的缺点:1.如果缺失某段升级脚本,覆盖安装程序后,应用运行异常.2.项目跨版本升级管理复杂,多版本升级支持难度较大.3.数据库导致的问题不容易排查,很难定位问题所在. 基于以上情况并以现有项目为背景(ormlite框架)构建android数据库自动升级维护方案,该方案需实现功能…
一.概述 SQLite是Android内置的一个很小的关系型数据库.SQLiteOpenHelper是一个用来辅助管理数据库创建和版本升级问题的抽象类.我们可以继承这个抽象类,实现它的一些方法来对数据库进行自定义操作.下面两个方法必须重写: public void onCreate(SQLiteDatabase db) public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) SQLiteOpenHelper…
借用API文档解释: public abstract void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 当数据库需要升级时,会调用这个方法.应该使用这个方法来实现删除表.添加表或者做一些需要升级新的策略版本的事情. SQLite ALTER TABLE的文档可以在以下网址中找到: http://sqlite.org/lang_altertable.html 如果要给表添加一个新列,那么使用使用ALTER TABLE…
数据库版本升级对软件的管理操作. 我们手机经常会收到xxx软件升级什么的提醒,你的软件版本更新,同时你的数据库对应的版本也要相应的更新. 数据库版本更新需要主要的问题: 软件的1.0版本升级到1.1版本时,老的数据不能丢. 那么在1.1版本的程序中就要有地方能够检测出来新的软件版本与老的数据库不兼容,并且能够有办法把1.0软件的数据库升级到1.1软件能够使用的数据库. 换句话说,要在1.0软件的数据库的那个表中增加那个字段,并赋予这个字段默认值. 当然有的时候我们对更新后的 版本并没有什么好感,…
以下内容可以作为面试官在面试的时候的问题,感觉比较好,是比较常用的知识点,可以用来考察基础是否扎实. 也可以程序猿学习.开发中的注意点.因为稍微不注意,就有可能导致数据库不能用. DBAdapter.java是一个简单的类,主要用来进行数据库操作. package com.example.test_20131218; import android.content.Context; import android.database.sqlite.SQLiteDatabase; public clas…
转自:http://blog.csdn.net/leehong2005/article/details/9128501 请考虑如下情况: 在数据库升级时,不同版本的数据库,他们定义的表结构完全可能是不一样的,比如V1.0的表A有10个column,而在V1.1的表A有12个colum,在升级时,表A增加了两列,此时我们应该怎么做呢. 总体思路 1,将表A重命名,改了A_temp. 2,创建新表A. 3,将表A_temp的数据插入到表A. 下面代码列出了更新表的实现,upgradeTables,给…
一.数据库的创建 1.文件的创建      //引用,如果文件不存在是不会创建的   File  file = new File("haha.txt"):     //输出流写数据,文件才会被创建   FileOutputStream  fos = new FileOutputStream(file):   fos.write("".getBytes()):   fos.close(): 2.数据库的创建 //执行下面这一点代码,数据库是不会被创建出来的.相当于Fi…
一.数据库的创建 1.文件的创建      //引用,如果文件不存在是不会创建的   File  file = new File("haha.txt"):     //输出流写数据,文件才会被创建   FileOutputStream  fos = new FileOutputStream(file):   fos.write("".getBytes()):   fos.close(): 2.数据库的创建 //执行下面这一点代码,数据库是不会被创建出来的.相当于Fi…
随着Android应用版本的迭代,经常遇到数据库表结构发生改变,或者一些指定的表数据需要更新.这也就引出一个问题Android数据库的更新问题. Android数据库升级分类 Android数据库更新大致情况可分为以下两种类型: 第一版APP版本号:appVersion = 1.0 第二版APP版本号:appNewVersion = 2.0 1. 用户A,使用了appVersion ,并在自动更新的基础上,升级到appNewVersion: 2. 用户B,没有使用过appVersion,而是直接…
原始完成于:2015-04-27 19:28:22 提供一种思路,优雅的处理Android数据库升级的问题,直接上代码: 1 package com.example.databaseissuetest; 2 3 import android.content.Context; 4 import android.database.sqlite.SQLiteDatabase; 5 import android.database.sqlite.SQLiteOpenHelper; 6 import and…
http://www.cnblogs.com/wang340/archive/2013/05/06/3063135.html http://www.eoeandroid.com/forum.php?mod=viewthread&tid=166052     做Android应用,不可避免的会与SQLite打交道.随着应用的不断升级,原有的数据库结构可能已经不再适应新的功能,这时候,就需要对SQLite数据库的结构进行升级了. SQLite提供了ALTER TABLE命令,允许用户重命名或添加新的…
第一部分 Andoird的SQLiteOpenHelper类中有一个onUpgrade方法.帮助文档中只是说当数据库升级时该方法被触发.经过实践,解决了我一连串的疑问: 1. 帮助文档里说的“数据库升级”是指什么? 你开发了一个程序,当前是1.0版本.该程序用到了数据库.到1.1版本时,你在数据库的某个表中增加了一个字段.那么软件1.0版本用的数据库在软件1.1版本就要被升级了. 2. 数据库升级应该注意什么? 软件的1.0版本升级到1.1版本时,老的数据不能丢.那么在1.1版本的程序中就要有地…
一.数据库升级: 在我们的程序中,或多或少都会涉及到数据库,使用数据库必定会涉及到数据库的升级,数据库升级带来的一些问题,如旧版本数据库的数据记录的保持,对新表的字段的添加等等一系列问题,还记得当我来西安的时候,面试的第二家公司,做音乐播放客户端的,就问到了这个问题; 我们开发了一个程序,当前是1.0版本.该程序用到了数据库.到1.1版本时,在数据库的某个表中增加了一个字段.那么软件1.0版本用的数据库在软件1.1版本就要被升级了.软件的1.0版本升级到1.1版本时,老的数据不能丢.那么在1.1…
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/39151617 在上一篇文章中,我们学习了LitePal的基本使用方法,体验了使用框架来进行创建表操作的便利.然而大家都知道,创建表仅仅是数据库操作中最主要的一步而已.我们在一開始创建的表结构,随着需求的变更.到了后期是极有可能须要改动的. 因此.升级表的操作对于不论什么一个项目也是至关重要的.那么今天我们就一起来学习一下,在Android传统开发其中升级表的方式,以及使用Lite…
Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 Alembic 查看指令 manager db 的可用选项 初始化 DB Migrate 开始第一次跟踪 将记录文件应用到数据库中(实时升级数据库结构) 回滚到某一个记录环境中 前文列表 用 Flask 来写个轻博客 (1) - 创建项目 用 Flask 来写个轻博客 (2) - Hello World! 用 Flask 来写个轻博客 (3) - (M)VC…
2016-12-1 课程内容 昨天学了Android数据库升级.降级.创建 今天把数据库表里面的数据读取出来显示到手机屏幕上 下面代码是MainActivity.java 的代码 package com.example.winxinmff; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;…
数据库GreenDao.jpg 之前在开发过程中,数据库基本上会使用Litepal或者SQlite自己写,最近换新环境,公司原先使用的数据库就是GreenDao,在各种情况的作用下,准备了解下GreenDao,顺便写一篇文章记录下GreenDao的基本使用!   Android开发者聚集地 本文主要从如下几个方面进行讲解 存储的数据库结构 GreenDao的优缺点 GreenDao的使用配置 使用GreenDao实现数据的增删改查 GreenDao的注解使用 GreenDao的关系处理 Gree…
转自 http://blog.csdn.net/da_caoyuan/article/details/61414626 一:OrmLite 简述: 优点: 1.轻量级:2.使用简单,易上手:3.封装完善:4.文档全面.缺点:1.基于反射,效率较低(本人还没有觉得效率低):2.缺少中文翻译文档 jar包 地址:http://ormlite.com/releases/ 集成方法:把jar包复制到as的libs文件夹下,并且引用jar包即可 用于学习的相关博客: 我的博客 总结:比较好的一个数据库开源…
一:OrmLite 简述: 优点: 1.轻量级:2.使用简单,易上手:3.封装完善:4.文档全面.缺点:1.基于反射,效率较低(本人还没有觉得效率低):2.缺少中文翻译文档 jar包 地址:http://ormlite.com/releases/ 集成方法:把jar包复制到as的libs文件夹下,并且引用jar包即可 用于学习的相关博客: 我的博客 总结:比较好的一个数据库开源框架.不过Git上很久没有更新了,貌似人家好像不在git上做项目维护了,而是在 官网 上做维护更新. 二:LitePal…
原文:http://blog.jobbole.com/77157/ 上一篇文章中我们学习了一些Android数据库相关的基础知识,和几个颇为有用的SQLite命令,都是直接在命令行操作的.但是我们都知道,数据库是要和程序结合在一起使用的,单独对一个数据库去进行増删改查操作并没有什么意义,因此今天我们就来学习一下如何在Android程序当中去操作SQLite数据库,还没看过前一篇文章的朋友可以先去参考Android数据库高手秘籍(一)——SQLite命令 . 操作数据库的第一步当然是创建表了,传统…
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/39345833 经过前面几篇文章的学习,我们已经把LitePal的表管理模块的功能都非常好地掌握了,相信大家都已经体会到了使用LitePal来创建表.升级表.以及建立表关联所带来的便利.那么从本篇文章開始,我们将进入到一个新模块的学习旅程其中,使用LitePal来进行表的CRUD操作.还没有看过前一篇文章的朋友建议先去參考 Android数据库高手秘籍(四)--使用LitePal建…
Android数据库框架--GreenDao轻量级的对象关系映射框架,永久告别sqlite 前不久,我在写了ORMLite这个框架的博文 Android数据库框架--ORMLite轻量级的对象关系映射(ORM)Java包 但是对于我个人来说,我可能更加倾向于用GreenDao,所以今天也为大家带来了GreenDao的详细博客,希望大家喜欢,之前也详细介绍了ORM的思想,如果不明白可以先看一下前面的博文,这里就不多赘述了,我们新建一个工程 一.相关介绍 官方网站 : http://greendao…
(2.1)mysql升级与降级 转自:深入浅出mysql数据库开发.优化与管理第二版 1.mysql升级 2.mysql降级…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 数据库 升级 SQLite onUpgrade 总结 MD 目录 目录SQLite数据库简介SQLite数据库升级单级升级跨级升级案例第一版需求第二版需求第三版需求 SQLite数据库简介 官方网站 Android使用开源的.与操作系统无关的SQL数据库SQLite. SQLite第一个A…
1.Android数据库简单介绍. Android系统的framework层集成了Sqlite3数据库.我们知道Sqlite3是一种轻量级的高效存储的数据库. Sqlite数据库具有以下长处: (1)零配置,无需安装和配置: (2)储存在单一磁盘文件里的一个完整的数据库. (3)数据库文件能够在不同字节顺序的机器间自由共享: (4)支持数据大小至2TB: (5)足够小.全部源码大致3万行C代码.250KB: (6)比眼下流行的大多数数据库的操作要快. (7)开源. 2.Sqlite 基本操作语句…
如何把SQLServer数据库从高版本降级到低版本 编写人:CC阿爸 2015-4-7 近期在给一个客户推行ECM系统时,基本客户的硬件环境,我们为其安装的为SQL2008 64位的数据库系统.在安装时一切顺利.但在恢复我们初始化数据库就遇到问题了. 今天在这里,我想与大家一起分享如何把SQLServer数据库从高版本降级到低版本,在此做个小结,以供参考.有兴趣的同学,可以一同探讨与学习一下,否则就略过吧.   1. 首先给大家看看恢复备份时遇到的问题 这样一看,就知道问题了,原来我们的数据库是…