SQLite的升级

作者: 奔跑的佩恩 | 来源:发表于2017-11-23 11:43 被阅读24次

sqliteDataBase的升级其实只涉及到创建数据库的那个类,
下面给出一个类的代码做范例然后做简单讲解

package com.example.pei.textdemo.sqlite_object;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Title:
 * Description:
 * <p>
 * Created by pei
 * Date: 2017/11/22
 */
public class ObjectOpenHelper extends SQLiteOpenHelper {

    private static final String DB_NAME = "save_object.db";//数据库文件名
    private static SQLiteDatabase INSTANCE;
    private Context mContext;

   private static final String CREATE_DB= "CREATE TABLE IF NOT EXISTS person(_id integer NOT NULL PRIMARY KEY AUTOINCREMENT,\n" +
                "                                data BLOB);";

    public SQLiteDatabase getInstance() {
        if (INSTANCE == null) {
            INSTANCE = new ObjectOpenHelper(mContext).getWritableDatabase();
        }
        return INSTANCE;
    }

    public ObjectOpenHelper(Context context) {
        this(context, DB_NAME, null, 1);
        this.mContext=context;
    }

    public ObjectOpenHelper(Context context, String dbName, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, dbName, factory, version);
    }

    //首次创建数据库时调用,一般进行建库建表操作
    @Override
    public void onCreate(SQLiteDatabase db) {
        //创建表
        db.execSQL(CREATE_DB);
    }

    //当数据库的版本发生变化的时候会自动执行,禁止人为调用
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
         switch(oldVersion){
             case 1:
                  //创建表
                  db.execSQL(CREATE_DB);
             case 2:
             default:
         }
    }


}

sqlite数据库一般升级的话只涉及到onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)方法,在这个方法中实现升级时比较粗暴的方法是先删除旧表,然后重建新表,但是这样会很不友好,比较好的处理是用switch做分类处理,注意case中没有break,这样就能保证每个版本功能的顺序执行。

ok,sqlite升级就讲到这里了,谢谢。

相关文章

  • iOS SQLite迭代

    *** 前提:sqlite较复杂的情况是沙盒中已经存在了sqlite文件,再进行sqlite升级,下文按照此种情况...

  • SQlite升级

    升级数据库方式一: onUpgrade()方法是用于对数据库进行升级的。假如现在要在数据库中添加一个STUDENT...

  • SQLite的升级

    sqliteDataBase的升级其实只涉及到创建数据库的那个类,下面给出一个类的代码做范例然后做简单讲解 sql...

  • centos7 升级sqlite3

    升级sqlite3官网 点击[https://www.sqlite.org/download.html]1.下载源...

  • Sqlite升级时向已有表中增加字段

    Sqlite升级时向已有表中增加字段 Sqlite数据库升级时,我们经常会遇到给已有表中增加字段的操作。一般来说,...

  • Android - base - SQLite

    Android 自带的SQLite数据库 大纲 SqLite 数据类型 核心类 创建和升级数据库 CRUD操作 #...

  • Android 数据库

    sqlite详解 sqlite升级,增加字段的语句 数据库框架对比和源码分析 数据库的优化 数据库数据迁移问题

  • 关于app数据库升级时的SQLite数据迁移问题

    关于app数据库升级时的SQLite数据迁移问题,下面几篇文章介绍得较为具体: 1、App版本更新时对SQLite...

  • SQLite数据库存储--创建、升级数据库

    SQLite数据库存储--创建、升级数据库 SQLite是一款轻量级的关系型数据库 创建数据库 Android为了...

  • Sqlite判断数据库表是否有某个字段

    前言:Sqlite在数据库升级时需要判断某个字段是否存在,不存在插入(FMDB有自己的判断方法,只说明Sqlite...

网友评论

    本文标题:SQLite的升级

    本文链接:https://www.haomeiwen.com/subject/qmfzvxtx.html