写一个类继承自  SQLiteOpenHelper

系统会自己主动加入构造方法、 onCreate方法、onUpgrade方法

当数据库里面数据或者表结构有所修改时。咱们须要升级数据库

这个时候。版本号加1.在update里面做对应改动。

须要注意的是,假设须要測试update,每次開始測试,version 值增大。假设和上次的同样。就不会促发update方法了

以下贴上代码

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

import android.database.sqlite.SQLiteDatabase.CursorFactory;

import android.widget.Toast;

//第一版的时候,update里面的代码为空。由于不须要更新,之后版本号更新,就得在update里面写代码了



public class DataHelp extends SQLiteOpenHelper {





public static String name = "sxjj.db3";

public static int version = 3;

Context context = null;





public DataHelp(Context context, String name, CursorFactory factory,

int version) {





super(context, name, null, version);

this.context = context;

}





/**

* 创建表

*/

public void onCreate(SQLiteDatabase db) {

// 更改表结构之前的

// String sql_tansInfo =

// "create table if not exists transInfo(id integer primary key autoincrement, name nvarchar(50), tel nvarchar(20), content text,type int )";

// 更改表结构之后的,加入了两列。marker 和address

String sql_tansInfo = "create table if not exists transInfo(id integer primary key autoincrement, name nvarchar(50), tel nvarchar(20), content text,type int,address text,marker text )";

db.execSQL(sql_tansInfo);





}





/**

* 更新表

*/

public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {

// 第一次执行。版本号加1的时候,触发这种方法了,下一次就不触发了,所以每次測试须要版本号号加1,正式公布不须要





// 1创建新表

String sql_create_tansInfo = "create table if not exists transInfo_new(id integer primary key autoincrement, name nvarchar(50), tel nvarchar(20), content text,type int,address text,marker text )";





db.execSQL(sql_create_tansInfo);





// 2 删除旧表

String sql_drop_oldTable = "drop table transInfo";

db.execSQL(sql_drop_oldTable);





// 3表新表的名字改成旧表的名字

String sql_rename = "ALTER TABLE  transInfo_new RENAME TO transInfo";

db.execSQL(sql_rename);





// 提示更新了,正式公布可去掉这一句提示

Toast.makeText(context, "更新---------", 1).show();





// 注:假设仅仅是添加一列,事实上不须要创建新表。

// 运行 String sql="ALTER TABLE transInfo ADD COLUMN address text;";

// 就能够了。上述的方法是一个通用的方法





}





}

最新文章

  1. unity 3d 解析 json
  2. 开源任务管理平台TaskManager介绍
  3. bzoj 4557: [JLoi2016]侦察守卫 树归
  4. docker containerd 中的create 容器操作
  5. [cocos2dx] 让UIButton支持disable状态
  6. jQuery的dom操作(二)转
  7. NOIP2005 等价表达式 解题报告
  8. 在oracle中通过链接服务器(dblink)访问sql server
  9. ORACLE的sign函数和DECODE函数
  10. 定制操作(传递函数或lambda表达式)
  11. TOJ3660家庭关系(并查集+hash+图的连通性)
  12. (转)ThinkPHP find方法 查询一条数据记录
  13. 迁移ADT/ANT构建的Android项目至Gradle,a walk through。
  14. js中if的简写方法
  15. BMP文件结构
  16. osgEarth开发之OSG解构——失败的尝试
  17. iframe标签使用总结与注意问题
  18. ssh相关原理学习与常见错误总结
  19. $cordovaCamera 插件 上传头像 图片功能
  20. 小程序解决方案 Westore - 组件、纯组件、插件开发

热门文章

  1. C/C++ 标准输入、输出
  2. HDU_1237_简单计算器
  3. tab切换组件nz-tab
  4. 初始化react项目
  5. windows 下安装 RabbitMQ
  6. 计算机中的CPU
  7. 浅谈Session的使用(原创)
  8. 【design pattern】工厂方法模式和抽象工厂模式
  9. 如何在 CentOS 7 上生成 SSL 证书为 Nginx 加密
  10. git clone问题