SQLiteOpenHelper简介

SQLiteOpenHelper简介

SQLiteDatabase是Android SDK中操做数据库的核心类之一。使用SQLiteDatabase能够打开数据库,也能够对数据库进行操做。然而为了数据库升级的须要以及使用更方便,每每使用SQLiteOpenHelper的子类来完成建立、打开数据库及各类数据库操做。
     SQLiteOpenHelper是个抽象类,在该类中有以下两个抽象方法,SQLiteOpenHelper的子类必须实现这两个方法。
     public abstract void onCreate(SQLiteDatabase db);
     public abstract void onUpdate(SQLiteDatabase db,int oldVersion,int newVersion);
     SQLiteOpenHelper会自动检测数据库文件是否存在。若是存在,会打开这个数据库,在这种状况下就不会调用onCreate()方法。若是数据库文件不存在,SQLiteOpenHelper首先会建立一个数据库文件,而后打开这个数据库,最后调用onCreate()方法。所以,onCreate()方法通常用来在新建立的数据库中创建表、视图等数据库组建。也就是说oncreate()方法在数据库文件第一次建立时调用。
    先看看SQLiteOpenHelper类的构造方法再解释onUpdate()方法什么时候会被调用。
    public SQLiteOpenHelper(Context context,String name,CursorFactory factory,int version);
    其中name参数表示数据库文件名(不包括文件路径),SQLiteOpenHelper会根据这个文件名建立数据库文件。version表示数据库的版本号。若是当前传入的数据库版本号比上次建立或升级的版本号高,SQLiteOpenHelper就会调用onUpdate()方法。也就是说,当数据库第一次建立时会有一个初始的版本号。当须要对数据库中的表、视图等组建升级时能够增大版本号,再从新建立它们。如今总结一下oncreate()和onUpdate()调用过程。
    1.若是数据库文件不存在,SQLiteOpenHelper在自动建立数据库后会调用oncreate()方法,在该方法中通常须要建立表、视图等组件。在建立前数据库通常是空的,所以不须要先删除数据库中相关的组件。
    2.若是数据库文件存在,而且当前版本号高于上次建立或升级的版本号,SQLiteOpenHelper会调用onUpdate()方法,调用该方法后会更新数据库的版本号。在onupdate()方法中除了建立表、视图等组件外,还须要先删除这些相关的组件,所以,在调用onupdate()方法前,数据库是存在的,里面还原许多数据库组建。
     综合上述两点,能够得出一个结论。若是数据库文件不存在,只有oncreate()被调用(该方法在建立数据库时被调用一次)。若是数据库文件存在,会调用onupdate()方法升级数据库,并更新版本号html

相关文章
相关标签/搜索