Android存储数据库
一、基本
Android系统提供了多种数据存储方式,其中SQLite数据库是常用的一种,SQLite是一个轻量级的关系型数据库管理系统,它无需独立的服务器进程或操作系统支持,可以嵌入到应用程序中,非常适合移动应用场景,本文将详细探讨如何在Android应用中使用SQLite数据库进行数据存储和管理。
二、SQLite数据库简介
1、什么是SQLite?
SQLite是一款轻型的数据库,设计目标是嵌入式的,占用资源非常低。
它能够支持Windows/Linux/Unix等主流操作系统,并且能跟很多程序语言相结合。
2、为什么使用SQLite?
SQLite无需复杂的安装和配置过程,没有服务器进程,所有数据存放在同一文件中,跨平台,可自由复制。
它处理速度快,占用空间小,十分适合在移动设备上使用。
3、SQLite的特点
轻量级和嵌入式
无需账号,使用方便
支持标准SQL语法
遵循ACID(原子性,一致性,隔离性,持久性)原则
文件形式保存数据库,一个文件就是一个数据库
三、SQLite在Android中的实现
1、相关类介绍
SQLiteOpenHelper:抽象类,通过继承该类并重写onCreate()和onUpgrade()方法来创建和升级数据库。
SQLiteDatabase:数据库访问类,提供对数据库的增删改查操作。
Cursor:游标类,用于遍历查询结果集。
2、创建和使用SQLiteOpenHelper
public class MyDBOpenHelper extends SQLiteOpenHelper { public MyDBOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE IF NOT EXISTS person (personid INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("ALTER TABLE person ADD phone VARCHAR(12) NULL"); } }
3、基本数据库操作
插入数据
ContentValues values = new ContentValues(); values.put("name", "张三"); values.put("age", 23); values.put("gender", "男"); db.insert("info_tab", null, values);
删除数据
db.delete("info_tab", "gender=?", new String[]{"女"});
更新数据
ContentValues values = new ContentValues(); values.put("name", "汤姆"); values.put("gender", "女"); db.update("info_tab", values, "age=?", new String[]{23});
查询数据
Cursor cursor = db.query("info_tab", null, null, null, null, null, null); while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex("name")); // 其他列的数据获取类似 } cursor.close();
四、查看生成的数据库文件
1、模拟器上查看
使用DDMS(Dalvik Debug Monitor Server)工具查看数据库文件。
路径为:/data/data/your.package.name/databases/yourdbname
2、真机上查看
需要root权限,可以使用ADB工具导出数据库文件。
命令示例:adb pull /data/data/your.package.name/databases/yourdbname
五、归纳
SQLite数据库在Android开发中扮演着重要角色,特别适合用于存储结构化的数据,通过合理设计和使用SQLite,可以高效地管理应用数据,提高应用的性能和用户体验,希望本文能帮助读者更好地理解和使用SQLite数据库进行Android应用开发。