Android中文API(139) —— SQLiteOpenHelper

 

前言

  本章内容android.database.sqlite.SQLiteOpenHelper章节,版本也Android
4.0
r1,翻译来自:”StreamH”,欢迎访问他的博客:”http://blog.csdn.net/qs_csu”,再次感谢”StreamH”
!期待您一块参与翻译Android的系材料,联系我over140@gmail.com。

 

声明

  欢迎转载,但要保留文章原来出处:) 

    博客园:http://www.cnblogs.com/

    Android中文翻译组:http://androidbox.sinaapp.com/

 

 

SQLiteOpenHelper

翻译署名:StreamH

翻译链接:http://blog.csdn.net/qs_csu

版本:Android
4.0 r1

 

结构

延续关系

public abstract class SQLiteOpenHelper
extends Object

      

java.lang.Object

android.database.sqlite.SQLiteOpenHelper

 

类概述

一个扶类似,帮助创建数据库及数据库版本管理。

利用要创造一个子类来兑现该onCreate(SQLiteDatabase),
onUpgrade(SQLiteDatabase, int, int)方法,同时任意实现onOpen(SQLiteDatabase)方法,同时打开数据库操作必须保证数据库存在,如果无设有则开创它,并且对该不可或缺之晋升,维护其保障一个特级的状态。

使本类提供内容开始创造数据库是非常容易的,首先得对数据库进行提升,以避免以数据库启动后马拉松应用要死数据。

推个例,在NotePad的事例程序中参看类NotePadProvider,在SDK的目录samples/下面。

注意:这个仿佛设升级的版本号是枯燥递增的。

 

构造函数

       public SQLiteOpenHelper
(Context context, String name, SQLiteDatabase.CursorFactory factory, int
version)

       创建一个拉扯对象,打开或者管理数据库。该方法一般快速回到。数据库并没有实际创造或者打开,直到getWritableDatabase()
或getReadableDatabase()其中一个受调用。

              参数

                     context 用来打开或创办数据库

                     name    数据库文件称,对一个以内存中的数据库而言是null

                     factory   
用来创建对象游标,或者沉默认为null

                     version   
数据库的序号(从1上马);如果数据库是原来的,onUpgrade(SQLiteDataBase,int,int)会给调用去提升数据库;如果数据库是初的,onDowngrade(SQLiteDatabase,int,int)会被调用去降级数据库。

 

       public SQLiteOpenHelper
(Context context, String name, SQLiteDatabase.CursorFactory factory, int
version, DatabaseErrorHandler errorHandler)

       创建一个拉扯对象,打开或者管理数据库。该法一般快速回到。数据库并不曾实际创造或者打开,直到getWritableDatabase()
或getReadableDatabase()其中一个让调用。

参数

context 用来开辟或创办数据库

                     name   数据库文件称,对一个以内存中之数据库而言是null

                     factory   
用来创建对象游标,或者沉默认为null

                     version   
数据库的序号(从1开端);如果数据库是原始的,onUpgrade(SQLiteDataBase,int,int)会为调用去提升数据库;如果数据库是新的,onDowngrade(SQLiteDatabase,int,int)会于调用去降级数据库。

                   
errorHandler 当sqlite报告一个数据库毁坏错误时,DatabaseErrorHandler会被利用。

 

官艺术

       public synchronized void
close ()

       关闭其他打开的数据库对象。

 

       public String
getDatabaseName ()

       返回正让辟的经构造函数传递进入的SQLite数据库的名字。

 

       public synchronized
SQLiteDatabase getReadableDatabase ()

开创或者打开一个数据库。这同getWritableDatabase()返回的靶子是与一个,除非有素要求数据库只能以read-only的主意吃辟,比如磁盘满了。在这种场面下,一个光读的数据库对象将让归。如果是题目为涂改掉,将来调用getWritableDatabase()就可能得逞,而此刻read-only数据库对象将于关闭,并且读写对象将给归。

如getWritableDatabase(),这个主意要很丰富时才回到,所以若切莫拖欠以应用程序的主线程中调用它,包括方法ContentProvider.onCreate()。

返回值

       一个得力之数据库对象,直到getWritableDatabase()
or close() 被调用

异常

       SQLiteException   
如果数据库不克被辟

 

public synchronized SQLiteDatabase
getWritableDatabase ()

创或者打开一个数据库,用于读写。该措施第一次受调用的当儿,数据库被辟,并且onCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase,int,int) 或onOpen(SQLiteDatabase)将受调用。

万一得逞打开,数据库将吃缓存,所以用写副数据的时节你得调用这个主意。(当你不再用是数据库的早晚,确保调用close())。像无健康的特许或磁盘已满等错误都可能造成拖欠办法是未,但是若该问题为解决,将来之尝试可能会见马到成功。

数据库升级或者会话费很丰富的岁月,所以若无拖欠以应用程序的主线程遭遇调用它,包括方法ContentProvider.onCreate()。

返回值

              一个使得的读写数据库对象直到close()被调用。

       异常

              SQLiteException   
如果数据库不克给辟用于形容副

      

       public abstract void
onCreate (SQLiteDatabase db)

       当第一潮创数据库时调用。表格的创导同初始化表格的个数在此地完成。

              参数

                    
db    数据库

 

       public void onDowngrade
(SQLiteDatabase db, int oldVersion, int newVersion)

       当数据库需要降低版本时候调用。这个法子跟onUpgrade()很相像,但是倘若当然版本比让请的更新,它就是见面叫调用。尽管如此,这个主意不是架空的,所以它们并无强制用户失去落实它。如果不吃另行写,默认的兑现用会见拒绝降级并且抛来一个SQLiteException。

              参数

                    
db                         数据库

oldVersionThe       旧版本数据库

newVersionThe      新本子数据库

 

       public void onOpen
(SQLiteDatabase db)

       当数据库打开时调用。这个实现会晤当提升数据库之前见面检讨isReadOnly()。

        参数

                    
db                         数据库

 

       public abstract void
onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion)

当数据库升级时调用。这个实现需要用该方法去丢表格,增加表格,或者做一些任何事情,它需要提升到新的计划面临之本子。

SQLite ALTER TABLE文档可以在马上找到。如果您加加新的排,你可以动用ALTER
TABLE 去把其插入到在在的报表中。如果你再次命名或移动列,你可以使ALTER
TABLE去又命名这些旧的表格,然后创建新的报表,之后将原来表格的数额放到新的表上。

              参数

                    
db                         数据库

oldVersionThe       旧版本数据库

newVersionThe      新本子数据库

 

补充

       文章精选

              android SQLiteOpenHelper使用示例

网站地图xml地图