在Android开发中,SQLite是一个非常重要的组件,它用于在本地存储结构化数据。SQLite是一个轻量级的关系型数据库,可以在不需服务器的情况下运行,非常适合移动设备。以下是对Android中SQLite使用方法的详细解释:
要打开或创建一个SQLite数据库,可以使用`openOrCreateDatabase()`方法。在提供的代码示例中,开发者在`onCreate()`方法中调用此方法,传入数据库名("test.db")和模式(`Context.MODE_PRIVATE`),这表示数据库只对当前应用可见。如果数据库已存在,该方法会打开它;否则,会创建一个新的数据库。
创建表是通过执行SQL语句完成的,例如`"CREATE TABLE person (_id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, age SMALLINT)"`,这将创建一个名为`person`的表,包含三个字段:一个自增主键 `_id`,一个字符串字段 `name` 和一个小型整数字段 `age`。
在Android中,数据插入通常有两种方式:直接执行SQL语句和使用`ContentValues`对象。在给出的示例中,两种方法都被展示了。对于直接执行SQL,可以使用`execSQL()`方法,如`"INSERT INTO person VALUES (NULL, ?, ?)"`,这里的问号是占位符,对应于`Object[]`参数中的值。而使用`ContentValues`时,可以将键值对存储在`ContentValues`对象中,然后调用`insert()`方法插入数据。
更新数据使用`update()`方法,它接受四个参数:表名、更新的数据(`ContentValues`)、更新条件(WHERE子句)以及条件参数。在例子中,`"name = ?"` 条件与 `new String[]{"john"}` 相匹配,更新年龄为35的`john`记录。
查询数据则通过`rawQuery()`方法完成,它可以执行任意的SQL查询。返回的结果是一个`Cursor`对象,通过遍历`Cursor`,可以获取查询结果。在示例中,`rawQuery()`查找年龄大于等于33的记录,并打印出结果。
删除数据使用`delete()`方法,它需要提供表名、删除条件(WHERE子句)和条件参数。这里删除了所有年龄小于35的记录。
记得在不再需要数据库时调用`close()`方法关闭数据库连接,以释放资源。如果需要彻底删除数据库,可以使用`deleteDatabase()`方法。
Android提供了丰富的API来操作SQLite,包括创建表、插入、查询、更新和删除数据。这些基本操作覆盖了大多数数据库应用场景。理解并熟练运用这些方法,将有助于在Android应用开发中有效地管理本地数据存储。