SQLite数据库的SQLiteOpenHelper帮助类

前端之家收集整理的这篇文章主要介绍了SQLite数据库的SQLiteOpenHelper帮助类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

sqliteOpenHelper是sqliteDatabase的一个帮助类,用来管理数据库的创建和版本更新。一般的用法是定义一个类继承sqliteOpenHelper,并实现两个回调方法,OnCreate(sqliteDatabase db)和onUpgrade(sqliteDatabse,int oldVersion,int newVersion)来创建和更新数据库。对数据库中的表数据进行更新时,如删除字段、添加字段、增加约束等,需要更新数据库,即更新数据库版本号VERSION,此时在数据的实现方法调用DataBaseHelper 类时,就需要使用public DataBaseHelper (Context context,int version)此构造方法
下面是我写的继承sqliteOpenHelper的帮助类
实例:DataBaseHelper.java

import android.content.Context;
import android.database.sqlite.sqliteDatabase;
import android.database.sqlite.sqliteDatabase.CursorFactory;
import android.database.sqlite.sqliteOpenHelper;

public class DataBaseHelper extends sqliteOpenHelper {
    private static final int VERSION=1;
    public static final String DBNAME = "diary.db";
    //sqliteOpenHelper子类必须要的一个构造函数,传递一个参数的, 数据库名字和版本号都写死了 
    public DataBaseHelper (Context context){
        //必须通过super 调用父类的构造函数 
        super(context,DBNAME,null,VERSION);
    }

    //数据库的构造函数,用于更新数据库
    public DataBaseHelper (Context context,int version){
        super(context,version);
    }

    //回调函数,第一次创建时才会调用函数,创建一个数据库 
    @Override
    public void onCreate(sqliteDatabase db) {
        String sql = "CREATE TABLE diary (diaryId integer primary key autoincrement,"
                + "title TEXT,time TEXT,week TEXT,weather TEXT,body TEXT)";
        db.execsql(sql);
    }

    //回调函数,当你构造DBHelper的传递的Version与之前的Version调用函数 
    @Override
    public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) {
        if(oldVersion == 1 && newVersion == 2.1){
            try{
                 db.beginTransaction();
                 String upgradesql="ALTER TABLE diary ADD COLUMN sid TEXT UNIQUE";
                 db.execsql(upgradesql);
                 db.setTransactionSuccessful();
             }catch(Exception ex){
                     ex.printStackTrace();
             }finally{
                     db.endTransaction();
             }
        }
    }
}
原文链接:https://www.f2er.com/sqlite/199588.html

猜你在找的Sqlite相关文章