sqlite数据库进阶 .doc查询语句返回的结果都是Cursor,但对于Cursor数据类型,各大数据库的使用方法基本相似。 Cursor是一个泛型数据集,尽管android中Cursor数据的读取方式比较灵活,不过一般还是需要遵循以下一个必要的步骤: 在SQLLite的学习与运用中,数据的增删改查(CRUD)是核心操作,而这些操作往往通过SQL语句或者Android提供的API来实现。在Android中,查询语句返回的结果通常是一个`Cursor`对象,这是一个泛型数据集,允许程序逐行遍历数据库查询结果。`Cursor`在不同数据库系统中虽有细微差别,但基本使用方法类似。 11.1.2 `ContentValues`类是数据操作的关键辅助工具。它类似于Java的`HashTable`,但具有限制:`ContentValues`的键必须是`String`类型,而值只能是基本数据类型,如`String`、`int`等,不支持存储对象。在数据库的增删改查中,我们可以通过`putXXX`方法设置键值对,如`put("key", value)`,并用`getXXX`方法获取值,如`get("key")`。当不再需要键值对时,可以调用`clear()`方法清空所有内容。 11.1.3 添加记录通常使用`insert`方法,其原型为`long insert(String table, String nullColumnHack, ContentValues values)`。`table`参数指定了要插入数据的表名,`nullColumnHack`通常用于处理空值,一般设为`NULL`,而`values`参数包含了待插入的键值对集合。当`values`为空时,需要`nullColumnHack`来构造有效的SQL语句,避免语法错误。 例如: ```java ContentValues cv = new ContentValues(); cv.put("id", tableBookDir.getId()); cv.put("title", tableBookDir.getTitle()); cv.put("describe", tableBookDir.getDescribe()); insert("book", null, cv); ``` 这段代码会将`tableBookDir`对象的属性值插入到"book"表中。 11.1.4 删除记录通常使用`delete`方法,它的原型是`int delete(String table, String whereClause, String[] whereArgs)`。`table`参数是表名,`whereClause`是SQL的WHERE子句,用来指定删除条件,`whereArgs`是`whereClause`中占位符的参数值。例如,要根据ID删除一条记录,可以这样写: ```java String whereClause = "id=?"; String[] whereArgs = {String.valueOf(bookId)}; delete("book", whereClause, whereArgs); ``` 这将删除ID为`bookId`的记录。 11.1.5 更新记录则使用`update`方法,原型为`int update(String table, ContentValues values, String whereClause, String[] whereArgs)`。与`delete`方法类似,`values`参数包含了要更新的键值对,`whereClause`和`whereArgs`用来定位要更新的记录。 11.1.6 游标(Cursor)的使用:在Android中,`Cursor`提供了遍历查询结果的方法。常用的方法包括`moveToFirst()`、`moveToNext()`、`isAfterLast()`、`isBeforeFirst()`等,以及获取特定列值的`getString()`、`getInt()`等。在实际使用中,我们通常会创建一个循环,通过移动游标来读取每一行数据。 11.2 事务管理:SQLite支持事务处理,可以确保一系列数据库操作的原子性。使用`beginTransaction()`开始一个事务,`setTransactionSuccessful()`标记事务成功,最后用`endTransaction()`结束事务。如果在事务过程中发生异常,需要调用`rollback()`回滚事务。 例如: ```java db.beginTransaction(); try { // 执行一系列数据库操作 db.setTransactionSuccessful(); } catch (Exception e) { Log.e("Error", e.getMessage()); } finally { db.endTransaction(); } ``` 以上内容涵盖了SQLite数据库在Android环境中的基础操作,包括`ContentValues`的使用、数据的增删改查以及事务管理。理解并熟练运用这些概念,对于开发Android应用程序尤其是涉及数据库操作的应用至关重要。在实际项目中,通常还会封装这些操作到一个`DbHelper`或`DatabaseHelper`类中,以方便在应用的其他部分复用。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助