我们在开发数据库应用的过程中,对表的结构有时候会有变化,特别是有时候增加了一些表,或者是增加了一些列。在调试时就会产生一些问题。
比如原来有一个表TABLEa。
在开发过程中增加了另外一个表TABLEb.并相应增加了访问了的代码。
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_A_CREATE);
db.execSQL(DATABASE_B_CREATE);
}
}
如果数据库已经建立,这时候对TABLEb进行访问会有EXCEPTIOn产生,原因是ONCREATE只在第一次创建数据库时运行,如果数据库已经创建好了,则不会运行,所以我们访问的B表是不存在的。
遇到这种情况,以前我都是通过文件系统,把数据库文件删除。然后再运行就没有问题 了。可是这样做的缺点是特别麻烦,充分利用ONUPGRADE则可以轻松的达到数据库更新的目的。
代码如下
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion
+ ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS TABLEa");
onCreate(db);
}
onupGRADE在数据库版本变化时运行到,所以只要改一下版本号,就会强制使数据库变化到最新的设计。
当然, 在你的应用发布时,别忘了恢复成你想要的版本。而且更要记得的是,如果在两次发布之间,数据库的结构有变化,也要变更版本号。
分享到:
相关推荐
本实例将深入探讨如何在Android中使用SQLite数据库进行基本的操作,包括创建数据库、创建表、插入数据、查询数据以及更新和删除数据。 首先,我们来了解SQLite在Android中的使用基础。Android系统会为每个应用程序...
Android SQLite 数据库操作报告 一、实验目的 Android 实验报告的主要目的是熟悉 Android 平台的文件操作、掌握 Android SQLite 数据库的设计和应用、熟悉 XML 和 JSON 文件的读取。通过本实验,用户可以掌握 ...
它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。 为什么要用 ...
本篇文章将深入探讨如何在Android中实现SQLite数据库的加密。 一、SQLite加密的必要性 1. 数据隐私:在移动设备上,用户数据可能包含个人隐私,如登录凭据、通讯录等,加密可以防止数据泄露。 2. 应用安全:防止...
本篇文章将深入探讨如何在Android中进行SQLite数据库的操作。 一、SQLite数据库简介 SQLite是一个开源的嵌入式数据库系统,它不需要单独的服务器进程,并且全部数据库都存储在一个文件中。在Android中,每个应用都...
资源名称:android中sqlite数据库的创建以及增删改查 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
在本示例"android基本SQLite数据库操作的增删改查demo"中,开发者创建了一个用于管理停车位查询的应用,其中涉及到了对SQLite数据库的基础操作:增加数据(Add)、查询数据(Query)、删除数据(Delete)以及修改...
Sqlite数据库操作
在这个"Android SQLite数据库操作Demo"中,我们将探讨如何在Android应用中创建、查询、更新和删除SQLite数据库的数据。 1. **数据库初始化** 在Android中,我们通常通过扩展SQLiteOpenHelper类来初始化SQLite...
通过这个源码实例,开发者可以学习到如何在Android应用中有效地操作SQLite数据库,理解基本的数据操作流程以及如何处理数据库版本变更。这不仅对于初学者来说是宝贵的实践资源,对于经验丰富的开发者也有助于复习和...
这个"Android操作SQLite数据库Demo"将展示如何在Android环境中有效地利用SQLite进行数据管理。以下是一些关键知识点: 1. **SQLiteOpenHelper**: Android提供了`SQLiteOpenHelper`类来帮助我们管理SQLite数据库,...
- **表**: 数据库中的数据按表格形式组织,每个表格包含多行多列,每行代表一个实体,每列代表实体的一个属性。 - **字段**: 表格中的每一列称为字段,每个字段都有特定的数据类型,如整型、字符串、日期等。 - **...
下面将详细探讨Android中SQLite数据库的基本操作,包括创建数据库、创建表、插入数据、查询数据以及更新和删除数据。 1. **创建数据库** 在Android中,SQLite数据库通常在`onCreate()`方法中通过SQLiteOpenHelper...
在本文中,我们将介绍如何使用SQLite数据库在Android Studio中,并详细解释SQLiteOpenHelper和SQLiteDatabase的使用方法。 一、SQLiteOpenHelper的使用 SQLiteOpenHelper是一个抽象类,用于创建和管理数据库。要...
以上是基于Android操作SQLite数据库的一些核心概念和源代码组织方式。实际开发中,还需要考虑数据同步、数据备份、数据加密等高级功能,以及性能优化,如批量插入、使用索引等。学习并理解这些知识点,将有助于你更...
android SQLite数据库操作源码,包括如何建表,增删改查等操作
本教程将详述如何在Android应用中读取SQLite数据库的数据并利用ListView进行展示。 首先,我们需要创建SQLite数据库。在Android中,我们通常通过扩展SQLiteOpenHelper类来实现,这个类帮助我们管理数据库的创建和...
SQLite数据库的优势在于它不需要单独的服务进程,可以直接嵌入到应用程序中,支持基本的SQL语法,非常适合移动设备上的本地数据存储。本案例将详细介绍如何在Android应用中使用SQLite进行增(Create)、删(Delete)...
本教程将详细讲解如何在Android环境中进行SQLite数据库的操作,包括创建数据库、创建表、插入数据、查询数据以及更新和删除数据。 首先,创建SQLite数据库在Android中通常是在`SQLiteOpenHelper`的子类中完成的。`...