Android开发:SQLite数据库详解与应用示例
需积分: 10 92 浏览量
更新于2024-09-13
收藏 371KB PDF 举报
"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`类的使用,开发者可以轻松管理数据库,进行数据操作,从而实现功能丰富的应用程序。
130 浏览量
2014-10-23 上传
2022-09-21 上传
2013-10-27 上传
2014-06-05 上传
244 浏览量
2012-07-20 上传
2021-08-11 上传
2022-09-14 上传

haoyuebinghe
- 粉丝: 1
最新资源
- Linux平台PSO服务器管理工具集:简化安装与维护
- Swift仿百度加载动画组件BaiduLoading
- 传智播客C#十三季完整教程下载揭秘
- 深入解析Inter汇编架构及其基本原理
- PHP实现QQ群聊天发言数统计工具 v1.0
- 实用AVR驱动集:IIC、红外与无线模块
- 基于ASP.NET C#的学生学籍管理系统设计与开发
- BEdita Manager:官方BEdita4 API网络后台管理应用入门指南
- 一天掌握MySQL学习笔记及实操练习
- Sybase数据库安装全程图解教程
- Service与Activity通信机制及MyBinder类实现
- Vue级联选择器数据源:全国省市区json文件
- Swift实现自定义Reveal动画播放器效果
- 仿53KF在线客服系统源码发布-多用户版及SQL版
- 利用Android手机实现远程监视系统
- Vue集成UEditor实现双向数据绑定