Android开发:SQLite数据库详解与应用示例
需积分: 10 59 浏览量
更新于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`类的使用,开发者可以轻松管理数据库,进行数据操作,从而实现功能丰富的应用程序。
2022-07-15 上传
2014-10-23 上传
2022-09-21 上传
2021-05-13 上传
2014-06-05 上传
2022-09-14 上传
2012-07-20 上传
2021-08-11 上传
2022-09-14 上传
haoyuebinghe
- 粉丝: 1
- 资源: 1
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫