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是一款针对Android平台的开源加密数据库解决方案,它基于SQLite并提供了强大的加密功能,保护应用程序中的数据安全。在v3.5.6版本中,这个库包含了多个架构的本地库(.so文件)以及Java接口...
`ormlite-android-5.1.jar`是专门为Android平台定制的版本,包含了Android特有的API和适配,比如Context对象的使用、Android的SQLiteOpenHelper等。这个版本的ORMLite可以方便地集成到Android项目中,帮助开发者管理...
068集-SQLiteOpenHelper(2)视频教程,个人感觉还可以,共享给大家。
这篇博客“Android学习09-----Android中数据的存储和访问 (3) By SQLite”深入探讨了如何利用SQLite进行数据管理。 SQLite是一种关系型数据库管理系统,它嵌入到应用程序中,不需要单独的服务或进程来运行。在...
《安卓Android源码分析——以telecapoland-jamendo-android-6cd07fb开源音乐播放器为例》 在移动操作系统领域,安卓Android以其开放性和灵活性吸引了大量的开发者和用户。对于那些热衷于深入理解系统运行机制或者...
- 在应用中,使用`SQLiteOpenHelper`的子类来创建和管理Spatialite数据库,并通过Java API进行操作。 5. **使用示例** - 创建空间表:可以使用`CREATE TABLE`语句创建具有空间列的表,如`CREATE TABLE locations ...
在 Android 开发中,SQLite 通常通过 `SQLiteOpenHelper` 类来管理数据库的创建和升级。这个类提供了一系列的方法,如 `onCreate()` 和 `onUpgrade()`,用于在数据库首次创建或升级时执行相应的操作。开发者可以通过...
1. 创建数据库:在Android应用中,通常会创建一个SQLiteOpenHelper的子类,重写`onCreate()`和`onUpgrade()`方法来初始化数据库和升级数据库版本。在`onCreate()`中,我们定义表结构并创建表;在`onUpgrade()`中,...
开源中国应用可能包含SQLiteOpenHelper的子类,用于创建、升级数据库,并提供CRUD(创建、读取、更新、删除)操作的方法。此外,Room库的使用可以简化数据库操作,提高代码的可读性和可维护性。 六、权限管理 ...
本篇主要介绍如何使用Android内置的`SQLiteOpenHelper`类来操作SQLite数据库,包括创建数据库、升级数据库、执行增删改查(CRUD)操作等核心知识点。 ### 1. 数据库初始化与创建 `SQLiteOpenHelper`是Android提供...
- **数据库访问**: 使用SQLite进行数据持久化,例如创建`SQLiteOpenHelper`子类。 #### 十六、流程控制与范围表达式 - **流程控制**: 使用`if`、`when`等控制语句。 - **范围表达式**: `let`、`apply`、`also`等...
SQLiteOpenHelper是Android提供的一种管理SQLite数据库的工具类,它简化了数据库的创建和版本管理。本篇文章将深入探讨如何在Android中使用SQLiteOpenHelper进行数据库的简单应用。 首先,SQLiteOpenHelper有两个...
SQLiteOpenHelper是Android开发中用于操作SQLite数据库的一个关键类。它主要负责数据库的创建、升级以及版本管理,使得开发者能够方便地处理数据库的生命周期。在这一067集的视频教程中,你将深入理解...
视频可能分为多个部分,涵盖了从安装和配置MySQL服务器,到创建数据库和表,再到使用Java的SQLiteOpenHelper或JDBC(Java Database Connectivity)接口在Android应用中连接和操作MySQL数据库的全过程。 在这个教程...
3. **Intent**:Intent是Android中用于组件间通信的关键机制,可以用来启动另一个Activity或Service,传递数据,实现应用间的交互。 4. **ContentResolver和ContentProvider**:ContentResolver用于访问由...
通过分析SQLiteOpenHelper的子类,我们可以了解如何创建表、插入、查询和更新数据。 五、多线程与并发控制 Android应用中,为了防止主线程被阻塞,通常会使用线程池、Handler-Looper机制或IntentService处理耗时...
Android SDK提供了SQLiteOpenHelper这个辅助类,用于创建、升级和管理SQLite数据库。开发者需要继承SQLiteOpenHelper并重写其onCreate()和onUpgrade()方法。 在Android中插入数据,通常涉及以下步骤: 1. 创建...