Android SQLite数据库操作详解:创建、插入与更新

需积分: 9 1 下载量 122 浏览量 更新于2024-09-10 收藏 181KB DOC 举报
"关于Android应用中使用SQLite数据库的基本操作" 在Android开发中,SQLite是一个轻量级的数据库系统,用于存储和管理应用程序的数据。SQLite数据库提供了一种高效且可靠的方式来处理数据,特别适合移动设备。在Android中,我们可以通过SQLiteOpenHelper类及其子类来创建、升级和管理数据库。以下是使用SQLite进行基本操作的详细步骤和注意事项: 1. 创建数据库 要创建一个SQLite数据库,你需要继承SQLiteOpenHelper类并重写它的`onCreate()`方法。在这个方法中,你可以编写SQL语句来创建表。例如: ```java @Override public void onCreate(SQLiteDatabase db) { String sql = "CREATE TABLE " + TABLE_NAME + " (" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_TEXT + " TEXT, " + COLUMN_TEXT_2 + " TEXT)"; db.execSQL(sql); } ``` 其中,`TABLE_NAME`是表的名称,`COLUMN_ID`、`COLUMN_TEXT`和`COLUMN_TEXT_2`是表中的字段名,`INTEGER PRIMARY KEY AUTOINCREMENT`定义了一个自动递增的主键。 2. 打开和关闭数据库 可以通过调用`getWritableDatabase()`或`getReadableDatabase()`方法来获取对数据库的写入或只读权限。例如: ```java SQLiteDatabase db = this.getWritableDatabase(); // 使用完毕后记得关闭 db.close(); ``` 3. 插入数据 Android提供了`insert()`方法来方便地插入数据。首先,你需要创建一个`ContentValues`对象来存储要插入的键值对: ```java ContentValues values = new ContentValues(); values.put(COLUMN_TEXT, "数据1"); values.put(COLUMN_TEXT_2, "数据2"); long newRowId = db.insert(TABLE_NAME, null, values); ``` `insert()`方法返回新插入行的ID,如果失败则返回-1。 4. 查询数据 使用`query()`方法进行查询,可以根据需要传递不同的参数,比如指定要查询的列、条件等: ```java Cursor cursor = db.query(TABLE_NAME, new String[]{COLUMN_ID, COLUMN_TEXT}, null, null, null, null, null); // 遍历结果 while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex(COLUMN_ID)); String text = cursor.getString(cursor.getColumnIndex(COLUMN_TEXT)); // 处理数据 } // 关闭游标 cursor.close(); ``` 5. 更新数据 更新数据使用`update()`方法,同样需要一个`ContentValues`对象来存储新的键值对,以及一个WHERE子句来指定要更新的行: ```java ContentValues updateValues = new ContentValues(); updateValues.put(COLUMN_TEXT, "新数据1"); int updatedRows = db.update(TABLE_NAME, updateValues, COLUMN_ID + " = ?", new String[]{"1"}); ``` `update()`方法返回被更新的行数。 6. 删除数据 删除数据使用`delete()`方法,需要一个WHERE子句来指定要删除的行: ```java int deletedRows = db.delete(TABLE_NAME, COLUMN_ID + " = ?", new String[]{"1"}); ``` 7. 自定义SQL操作 如果需要执行更复杂的SQL语句,可以使用`execSQL()`方法: ```java String sql = "DELETE FROM " + TABLE_NAME + " WHERE " + COLUMN_ID + " = ?"; db.execSQL(sql, new String[]{"1"}); ``` 8. 事务处理 对于一组需要原子性执行的操作,可以使用SQLite的事务功能: ```java db.beginTransaction(); try { // 执行一系列操作 db.setTransactionSuccessful(); } finally { db.endTransaction(); } ``` 9. 主键和自动递增 主键(`PRIMARY KEY`)通常命名为`_id`,但并非强制要求。如果省略,数据库会默认创建一个名为`_id`的主键。主键字段加上`AUTOINCREMENT`属性,会在每次插入新行时自动递增。 Android中的SQLite数据库操作提供了丰富的API,既可以使用预定义的方法,也可以直接执行SQL语句,满足不同层次开发者的需求。正确理解和运用这些知识,能够帮助你有效地管理应用程序的数据存储。