Android开发:SQLite数据库详解与应用示例
下载需积分: 10 | PDF格式 | 371KB |
更新于2024-09-13
| 192 浏览量 | 举报
"Android SQLite 使用详解及示例代码"
在Android应用开发中,SQLite是一个不可或缺的数据存储解决方案。SQLite是一个开源的、轻量级的关系型数据库,适用于嵌入式环境,如移动设备上的Android系统。它的主要特点包括轻量级、独立性、隔离性、跨平台、多语言接口以及安全性。
1. 轻量级:SQLite数据库只需一个动态库,体积小巧,适合资源有限的设备。
2. 独立性:SQLite无需额外的软件支持,直接运行在操作系统之上,便于集成。
3. 隔离性:所有数据库内容存储在一个文件中,便于管理和迁移。
4. 跨平台:SQLite广泛支持各种操作系统,包括Android在内的多种移动操作系统。
5. 多语言接口:SQLite提供多种编程语言的API,便于不同语言环境下的开发。
6. 安全性:SQLite支持事务处理,通过独占性和共享锁机制保证了数据的一致性和完整性。
在Android中,通常通过继承`SQLiteOpenHelper`类来操作SQLite数据库。以下是一个简单的`dbHelper`类示例:
```java
package com.terry;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
public class dbHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "sec_db";
private static final int DATABASE_VERSION = 1;
// 表定义
private static final String TABLE_NAME = "my_table";
private static final String COLUMN_ID = "_id";
private static final String COLUMN_NAME = "name";
private static final String COLUMN_AGE = "age";
public dbHelper(Context context, String name, CursorFactory factory, int version) {
super(context, DATABASE_NAME, factory, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "("
+ COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ COLUMN_NAME + " TEXT,"
+ COLUMN_AGE + " INTEGER" + ")";
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
// 插入数据
public void insertData(String name, int age) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COLUMN_NAME, name);
contentValues.put(COLUMN_AGE, age);
db.insert(TABLE_NAME, null, contentValues);
db.close();
}
// 查询数据
public Cursor getAllData() {
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
return res;
}
// 更新数据
public boolean updateData(String name, int age, int id) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COLUMN_NAME, name);
contentValues.put(COLUMN_AGE, age);
db.update(TABLE_NAME, contentValues, COLUMN_ID + " = ? ", new String[]{String.valueOf(id)});
return true;
}
// 删除数据
public Integer deleteData(int id) {
SQLiteDatabase db = this.getWritableDatabase();
return db.delete(TABLE_NAME, COLUMN_ID + " = ? ", new String[]{String.valueOf(id)});
}
}
```
在这个示例中,`dbHelper`类创建了一个名为`sec_db`的数据库,并在`onCreate()`方法中定义了一个名为`my_table`的表,包含三个字段:`_id`(主键)、`name`和`age`。提供了插入、查询、更新和删除数据的方法。
使用这个`dbHelper`类,开发者可以方便地进行数据库操作,例如:
- 插入数据:调用`insertData()`方法,传入姓名和年龄即可。
- 查询数据:调用`getAllData()`方法,返回一个`Cursor`对象,可以通过遍历`Cursor`获取所有记录。
- 更新数据:调用`updateData()`方法,传入新姓名、新年龄和要更新的记录ID。
- 删除数据:调用`deleteData()`方法,传入要删除的记录ID。
在实际开发中,可以根据需求扩展这个类,添加更多的表和复杂查询,以满足应用程序的存储需求。同时,`SQLiteOpenHelper`的`onUpgrade()`方法用于在数据库升级时处理旧数据结构的变化,确保数据迁移的平滑进行。
SQLite为Android应用提供了一种高效、便捷的本地数据存储方式,通过`SQLiteOpenHelper`类的使用,开发者可以轻松管理数据库,进行数据操作,从而实现功能丰富的应用程序。
相关推荐










haoyuebinghe
- 粉丝: 1
最新资源
- C#实现桌面飘雪效果,兼容Win7及XP系统
- Swift扩展实现UIView视差滚动效果教程
- SQLServer 2008/2005版驱动sqljdbc4.jar下载
- 图像化操作的apk反编译小工具介绍
- 掌握IP定位技术,轻松获取城市信息
- JavaFX项目计划应用PlanAmity代码库介绍
- 新华龙C8051系列芯片初始化配置教程
- readis:轻松从多Redis服务器获取数据的PHP轻量级Web前端
- VC++开发的多功能计算器教程
- Android自定义图表的Swift开发示例解析
- 龙门物流管理系统:Java实现的多技术项目源码下载
- sql2008与sql2005的高效卸载解决方案
- Spring Boot微服务架构与配置管理实战指南
- Cocos2d-x跑酷项目资源快速导入指南
- Java程序设计教程精品课件分享
- Axure元件库69套:全平台原型设计必备工具集