package com.swjtu.gcmformojo; import android.content.Context; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase; /** * 数据库Helper类,必须继承自 SQLiteOpenHelper * 当一个继承自 SQLiteOpenHelper 后需要复写两个方法,分别是 onCreate() 和 onUpgrade() * onCreate(): onCreate是在数据库创建的时候调用的,主要用来初始化数据表结构和插入数据初始化的记录 * onUpgrade():onUpGrade是在数据库版本升级的时候调用的,主要用来改变表结构 * * 数据库帮助类要做的事情特别简单: * 1、复写onCreate() 和 onUpgrade()方法 * 2、在这两个方法里面填写相关的sql语句 * * Created by HeiPi on 2017/2/18. */ @Deprecated public class MyDBHelper extends SQLiteOpenHelper { public MyDBHelper(Context context) { /** * 参数说明: * * 第一个参数: 上下文 * 第二个参数:数据库的名称 * 第三个参数:null代表的是默认的游标工厂 * 第四个参数:是数据库的版本号 数据库只能升级,不能降级,版本号只能变大不能变小 */ super(context, "myGcmData.db", null, 1); } /** * onCreate是在数据库创建的时候调用的,主要用来初始化数据表结构和插入数据初始化的记录 * * 当数据库第一次被创建的时候调用的方法,适合在这个方法里面把数据库的表结构定义出来. * 所以只有程序第一次运行的时候才会执行 * 如果想再看到这个函数执行,必须重新安装这个app */ @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table msgSave (id integer primary key autoincrement, msgId varchar(70), msgContent ntext))"); db.execSQL("create table msgCount (id integer primary key autoincrement, msgId varchar(70), msgCount vchar(5))"); db.execSQL("create table remoteMessage (id integer primary key autoincrement, msgId varchar(70), msgType vchar(20), msgTitle vchar(50),senderType vchar(2), msgContent ntext))"); db.execSQL("create table msgIdNotifyId (id integer primary key autoincrement, msgId varchar(70), NotifyId varchar(15))"); db.execSQL("create table currentUserList (id integer primary key autoincrement,userName vchar(50), userId varchar(70), userType vchar(20), userMessage ntext, userTime vchar(20),senderType vchar(2),NotifyId varchar(15),msgCount vchar(5)"); } /** * 当数据库更新的时候调用的方法 * 这个要显示出来得在上面的super语句里面版本号发生改变时才会 打印 (super(context, "itheima.db", null, 2); ) * 注意,数据库的版本号只可以变大,不能变小,假设我们当前写的版本号是3,运行,然后又改成1,运行则报错。不能变小 * @param db * @param oldVersion * @param newVersion */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // db.execSQL("alter table contactinfo add account varchar(20)"); } }