在Android应用开发中,SQLite数据库是用于存储应用数据的一个重要组件。SQLite是一个轻量级的、嵌入式的关系型数据库,特别适合于移动设备,因为它不需要独立的服务进程,且占用资源少。以下将详细介绍Android中SQLite数据库的使用,包括基本的数据存储方式、SQL语句以及相关API。
1. Android数据存储方式
- Shared Preferences:适用于存储少量的键值对,通常是偏好设置或简单的配置数据。
- SQLite数据库:适用于存储结构化的数据,如用户信息、应用设置等,支持复杂的查询操作。
- SDCard文件:适用于存储大文件或非结构化数据,如音频、图片等。
2. SQLite SQL语句
- 创建表:`CREATE TABLE 表名 (字段名称 数据类型 约束, ...)`。例如,创建一个名为person的表,包含_id、name和age字段:`CREATE TABLE person(_id Integer PRIMARY KEY, name VARCHAR(10), age INTEGER NOT NULL)`
- 删除表:`DROP TABLE 表名`。例如,删除person表:`DROP TABLE person`
- 插入数据:`INSERT INTO 表名 [字段, 字段] VALUES (值1, 值2, ...)`。例如,插入一条数据:`INSERT INTO person(_id, age) VALUES(1, 20); INSERT INTO person VALUES(2, "zs", 30)`
- 更新数据:`UPDATE 表名 SET 字段=新值 WHERE 条件`。例如,更新_id为1的用户名字为"ls",年龄为20:`UPDATE person SET name="ls", age=20 WHERE _id=1`
- 删除数据:`DELETE FROM 表名 WHERE 条件`。例如,删除_id为2的用户:`DELETE FROM person WHERE _id=2`
- 查询数据:
- `SELECT 字段名 FROM 表名 WHERE 条件 GROUP BY 分组字段 HAVING 筛选条件 ORDER BY 排序条件`
- 常见查询示例:
- 获取所有数据:`SELECT * FROM person`
- 选择_id和name字段:`SELECT _id, name FROM person`
- 按_id筛选:`SELECT * FROM person WHERE _id=1`
- 除_id为1外的所有数据:`SELECT * FROM person WHERE _id<>1`
- 年龄大于18的用户:`SELECT * FROM person WHERE age>18`
- 名字中包含"小"的用户:`SELECT * FROM person WHERE name LIKE "%小%"`
- 名字以"小"开头的用户:`SELECT * FROM person WHERE name LIKE "_小%"`
- 查找name为空的记录:`SELECT * FROM person WHERE name IS NULL`
- 年龄在10到20之间的用户:`SELECT * FROM person WHERE age BETWEEN 10 AND 20`
- 按_id排序:`SELECT * FROM person WHERE age>18 ORDER BY _id`
3. SQLite数据库相关类
- SQLiteOpenHelper:这是Android提供的一个抽象类,用于数据库的创建、升级、打开等操作。通过继承SQLiteOpenHelper并重写onCreate()和onUpgrade()方法,可以自定义数据库的初始化和升级逻辑。
- SQLiteDatabase:这是数据库访问类,提供了执行SQL语句的方法,如insert(), query(), update(), delete()等,用于对数据库进行读写操作。
- SQLiteCursor:查询结果集的游标,可以遍历查询结果并获取每一行的数据。
4. SQLiteDatabase类常用方法
- `getWritableDatabase()`:获取可读写的数据库实例。
- `getReadableDatabase()`:获取只读的数据库实例。
- `execSQL(String sql)`:执行一条SQL语句。
- `rawQuery(String sql, String[] args)`:执行SQL查询并返回SQLiteCursor对象。
- `insert(String table, String nullColumnHack, ContentValues values)`:插入一条记录。
- `update(String table, ContentValues values, String whereClause, String[] whereArgs)`:更新记录。
- `delete(String table, String whereClause, String[] whereArgs)`:删除记录。
5. SQLite数据操作过程
- 创建SQLiteOpenHelper子类,定义数据库版本和相关操作。
- 使用SQLiteOpenHelper实例获取SQLiteDatabase对象。
- 使用SQLiteDatabase对象执行SQL语句,进行数据的增删查改。
- 关闭数据库连接,释放资源。
6. 实训:购物信息的录入
在Android应用中,可以创建一个SQLiteOpenHelper子类,管理购物信息数据库。当需要录入商品信息时,通过SQLiteOpenHelper获取SQLiteDatabase对象,然后调用insert()方法插入商品数据。在用户界面中,可以显示SQLiteCursor的结果,供用户查看或编辑购物清单。
SQLite数据库在Android应用开发中扮演着关键角色,提供了高效且灵活的数据存储解决方案。通过掌握SQLite的基本操作和Android的SQLite API,开发者能够有效地管理和操作应用的数据。
评论0
最新资源