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()方法升级数据库,并更新版本号。转:http://www.eoeandroid.com/thread-54750-1-1.html
分享到:
相关推荐
在android studio中存储数据有三个方法,分别是: (1)简单存储——SharedPreferences (2)文件存储: 内部存储——应用程序私有文件 ...onUpgrade( ):利用SQL语句,在系统中升级数据库(表)功能 注: onCreat
SQLiteOpenHelper数据库的简单使用,仅供学习,适合初学者
在android studio中存储数据有三个方法,分别是: (1)简单存储——SharedPreferences (2)文件存储:内部存储——应用程序私有文件外部...onUpgrade( ):利用SQL语句,在系统中升级数据库(表)功能 注: onCreate
数据库的使用,包含增删改查,是使用android 内置的数据库助手类实现的
这篇博文写的是用SQLiteOpenHelper()方法创建数据库中的表结构,而如何用这个方法创建数据库,欢迎大家访问我的博文: 在android studio中用SQLiteOpenHelper()方法建立数据库 注:这篇文章是承接上面发的链接的...
android SQLiteOpenHelper 数据库简单应用,今天闲着没事自己写的demo
(代码模板)新建一个SQLiteOpenHelper助手类.xml
SuperDB,演示使用SQLiteOpenHelper继承子类操作数据库例子,演示数据库的增删查等操作。
在本实例中,首先我们利用SQLiteOpenHelper类建立一个数据库,并写好增、删、查等方法,通过SimpleCursorAdapter连接listview实现数据库的增加、查询以及长按删除的功能。 首先,我们先认识一下什么是...
创建SQliteOpenHelper的派生类 使用创建的类生成数据库,并插入一条记录 创建一个Activity,添加一个EditText和四个Button,分别实现增、删、改、查功能
对Android数据库SQlite的基本操作,打开或新建数据库,增,删,改,查。 SQLiteOpenHelper类的运用。 ListView的运用和适配器的使用。 Menu键的使用。
android项目添加数据库,利用SQLiteOpenHelper创建数据库文件的Demo
SQLiteOpenHelper类的onUpgrade方法的作用
SQLite Android为了让我们更加方便地管理数据库,提供了SQLiteOpenHelper帮助类协助我们管理数据库。 SQLite SQLiteOpenHelper 有两个抽象方法,分别是onCreate和onUpgrade,他们分别是数据库创建和数据库版本升级...
android 手机数据库 实现SQLiteOpenHelper
android的SQLiteOpenHelper类的应用实例.docx
SQLiteOpenHelper的基本使用demo
ContentProvider与ContentResolver 与 SQLiteOpenHelper http://blog.csdn.net/i_do_can/article/details/50937380 http://blog.csdn.net/i_do_can/article/details/50937380
这是一个Android简单的SQLiteOpenHelper帮助类数据库,实现了两个字符串字段的增删改查。两个demo两种方式。