`
reymont
  • 浏览: 530250 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Pro-Android-3 BookProvider SQLiteOpenHelper

 
阅读更多

 

 

 

 

http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html

 

抽象类SQLiteOpenHelper是数据创建和版本控制的帮助类。

 

继承SQLiteOpenHelper的子类需要实现

onCreate(SQLiteDatabase)onUpgrade(SQLiteDatabase, int, int)

可选实现

onOpen(SQLiteDatabase)

 

public abstract void onCreate (SQLiteDatabase db)

这个类在打开数据库之前会检查这个类存不存在,如果不存在将执行onCreate方法。onCreate方法在数据库第一次创建时调用。

 

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

在需要更新的时候将会调用onUpgrade方法。实现这个方法,一般是先drop tables,然后添加tables。这个方法是和SQLiteOpenHelper的构造器相关连的,

 

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

context是用来打开和创建数据库的上下文,name是数据库的名称,version是数据库的版本号。只有当getWritableDatabase() orgetReadableDatabase()被调用时,才会创建数据库或打开。如果当前传入的数据库版本号比上次创建或升级的版本号高,SQLiteOpenHelper就会调用onUpdate()方法。

 

举例说明:

 

ProAndroid3第三章TestProvider项目中的

 

com.ai.android.book.provider.BookProviderMetaData

 

修改DATABASE_VERSION,重新执行TestProvider

//public static final int DATABASE_VERSION = 1;

public static final int DATABASE_VERSION = 2;

 

LogCat,输入inner

05-20 02:26:45.973: D/BookProvider(376): inner onupgrade called

05-20 02:26:45.993: D/BookProvider(376): inner oncreate called

 

对应于代码

 

Log.d(TAG,"inner onupgrade called");

onCreate(db);

Log.d(TAG,"inner oncreate called");

 

LogCat,输入upgrading

05-20 02:26:45.973: W/BookProvider(376): Upgrading database from version 1 to 2, which will destroy all old data

 

对应于代码

Log.w(TAG, "Upgrading database from version "

                          + oldVersion + " to "

                    + newVersion + ", which will destroy all old data");

 

 

分享到:
评论

相关推荐

    sqlcipher-for-android-v3.5.6.zip

    SQLCipher for Android是一款针对Android平台的开源加密数据库解决方案,它基于SQLite并提供了强大的加密功能,保护应用程序中的数据安全。在v3.5.6版本中,这个库包含了多个架构的本地库(.so文件)以及Java接口...

    ormlite 包涵ormlite-android-5.1和ormlite-core-5.1

    `ormlite-android-5.1.jar`是专门为Android平台定制的版本,包含了Android特有的API和适配,比如Context对象的使用、Android的SQLiteOpenHelper等。这个版本的ORMLite可以方便地集成到Android项目中,帮助开发者管理...

    068集-SQLiteOpenHelper(2)视频教程

    068集-SQLiteOpenHelper(2)视频教程,个人感觉还可以,共享给大家。

    Android学习09-----Android中数据的存储和访问 (3) By SQLite

    这篇博客“Android学习09-----Android中数据的存储和访问 (3) By SQLite”深入探讨了如何利用SQLite进行数据管理。 SQLite是一种关系型数据库管理系统,它嵌入到应用程序中,不需要单独的服务或进程来运行。在...

    安卓Android源码——telecapoland-jamendo-android-6cd07fb(国外开源音乐播放器).zip

    《安卓Android源码分析——以telecapoland-jamendo-android-6cd07fb开源音乐播放器为例》 在移动操作系统领域,安卓Android以其开放性和灵活性吸引了大量的开发者和用户。对于那些热衷于深入理解系统运行机制或者...

    spatialite for android jar包和so库文件

    - 在应用中,使用`SQLiteOpenHelper`的子类来创建和管理Spatialite数据库,并通过Java API进行操作。 5. **使用示例** - 创建空间表:可以使用`CREATE TABLE`语句创建具有空间列的表,如`CREATE TABLE locations ...

    sqlite-android,android sqlite支持库.zip

    在 Android 开发中,SQLite 通常通过 `SQLiteOpenHelper` 类来管理数据库的创建和升级。这个类提供了一系列的方法,如 `onCreate()` 和 `onUpgrade()`,用于在数据库首次创建或升级时执行相应的操作。开发者可以通过...

    JoneCool-Android-MyDiary-master_android_androidstudio_Androidstu

    1. 创建数据库:在Android应用中,通常会创建一个SQLiteOpenHelper的子类,重写`onCreate()`和`onUpgrade()`方法来初始化数据库和升级数据库版本。在`onCreate()`中,我们定义表结构并创建表;在`onUpgrade()`中,...

    oschina-android-app(开源中国).rar

    开源中国应用可能包含SQLiteOpenHelper的子类,用于创建、升级数据库,并提供CRUD(创建、读取、更新、删除)操作的方法。此外,Room库的使用可以简化数据库操作,提高代码的可读性和可维护性。 六、权限管理 ...

    Android SqliteOpenHelper数据库的基本使用

    本篇主要介绍如何使用Android内置的`SQLiteOpenHelper`类来操作SQLite数据库,包括创建数据库、升级数据库、执行增删改查(CRUD)操作等核心知识点。 ### 1. 数据库初始化与创建 `SQLiteOpenHelper`是Android提供...

    kotlin-for-android-developers-zh.pdf

    - **数据库访问**: 使用SQLite进行数据持久化,例如创建`SQLiteOpenHelper`子类。 #### 十六、流程控制与范围表达式 - **流程控制**: 使用`if`、`when`等控制语句。 - **范围表达式**: `let`、`apply`、`also`等...

    android SQLiteOpenHelper 数据库简单应用

    SQLiteOpenHelper是Android提供的一种管理SQLite数据库的工具类,它简化了数据库的创建和版本管理。本篇文章将深入探讨如何在Android中使用SQLiteOpenHelper进行数据库的简单应用。 首先,SQLiteOpenHelper有两个...

    067集-SQLiteOpenHelper(1)视频教程

    SQLiteOpenHelper是Android开发中用于操作SQLite数据库的一个关键类。它主要负责数据库的创建、升级以及版本管理,使得开发者能够方便地处理数据库的生命周期。在这一067集的视频教程中,你将深入理解...

    Video-Tutorial--MySQL-ANDROID.rar_android

    视频可能分为多个部分,涵盖了从安装和配置MySQL服务器,到创建数据库和表,再到使用Java的SQLiteOpenHelper或JDBC(Java Database Connectivity)接口在Android应用中连接和操作MySQL数据库的全过程。 在这个教程...

    -Android开发必备工具-AndroidAPI中文版.rar

    3. **Intent**:Intent是Android中用于组件间通信的关键机制,可以用来启动另一个Activity或Service,传递数据,实现应用间的交互。 4. **ContentResolver和ContentProvider**:ContentResolver用于访问由...

    LumaQQ-Android qq 代码.zip

    通过分析SQLiteOpenHelper的子类,我们可以了解如何创建表、插入、查询和更新数据。 五、多线程与并发控制 Android应用中,为了防止主线程被阻塞,通常会使用线程池、Handler-Looper机制或IntentService处理耗时...

    065集-Android中SQLite编程-数据的插入

    Android SDK提供了SQLiteOpenHelper这个辅助类,用于创建、升级和管理SQLite数据库。开发者需要继承SQLiteOpenHelper并重写其onCreate()和onUpgrade()方法。 在Android中插入数据,通常涉及以下步骤: 1. 创建...

Global site tag (gtag.js) - Google Analytics