android SQLite开发实例
【Android SQLite 开发实例】 SQLite 是一个轻量级的、开源的、自包含的关系型数据库管理系统,被广泛应用于移动设备,尤其是 Android 平台。它允许开发者在应用程序中存储、检索和管理数据,无需依赖外部数据库服务器。在这个实例中,我们将深入探讨如何使用 Android 的 SQLite 数据库,以及如何通过 SQLiteOpenHelper 类进行增删查改操作。 1. **SQLiteOpenHelper 类的使用** SQLiteOpenHelper 是 Android 提供的一个关键类,用于创建、升级和打开数据库。你需要继承这个类,并重写 `onCreate()` 和 `onUpgrade()` 方法。`onCreate()` 在数据库首次创建时调用,用于建立表结构;`onUpgrade()` 在数据库版本升级时调用,可以用来更新表结构或数据。 2. **创建数据库** 在 `onCreate()` 方法中,通常会使用 SQL 语句创建数据库表。例如,创建一个名为 "Person" 的表,包含 "id"(主键)、"name" 和 "age" 三列: ```sql CREATE TABLE Person ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER ); ``` 3. **打开和关闭数据库** 通过 SQLiteOpenHelper 的 `getWritableDatabase()` 或 `getReadableDatabase()` 方法可以获取可读写或只读的数据库对象。使用完毕后,记得调用 `close()` 方法关闭数据库连接,以节省资源。 4. **插入数据** 使用 SQLiteDatabase 对象的 `insert()` 方法插入数据,如: ```java ContentValues values = new ContentValues(); values.put("name", "John Doe"); values.put("age", 30); long newRowId = db.insert("Person", null, values); ``` `insert()` 方法返回新插入行的 ID,如果失败则返回 -1。 5. **查询数据** 使用 `query()` 方法进行数据查询,可以指定条件、排序方式等: ```java Cursor cursor = db.query("Person", null, "age > ?", new String[]{"20"}, null, null, "age ASC"); while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex("id")); String name = cursor.getString(cursor.getColumnIndex("name")); int age = cursor.getInt(cursor.getColumnIndex("age")); // 处理查询结果 } cursor.close(); ``` 记得在遍历完结果集后关闭 Cursor。 6. **更新数据** 使用 `update()` 方法更新数据: ```java ContentValues updateValues = new ContentValues(); updateValues.put("age", 35); int updatedRows = db.update("Person", updateValues, "name = ?", new String[]{"John Doe"}); ``` `update()` 返回更新的行数。 7. **删除数据** 使用 `delete()` 方法删除数据: ```java int deletedRows = db.delete("Person", "name = ?", new String[]{"John Doe"}); ``` 同样返回删除的行数。 8. **事务处理** SQLite 支持事务处理,可以确保一组操作要么全部成功,要么全部失败。在 `beginTransaction()`, `commit()` 和 `rollback()` 方法之间的一组操作构成一个事务: ```java db.beginTransaction(); try { // 执行一系列操作 db.setTransactionSuccessful(); } finally { db.endTransaction(); } ``` 如果所有操作成功,调用 `setTransactionSuccessful()`,然后 `endTransaction()` 会提交事务;如果出现错误,跳过 `setTransactionSuccessful()`,`endTransaction()` 将回滚事务。 这个实例中,"PersonSQLite数据库" 文件可能包含了实现以上功能的具体代码。通过这个实例,初学者可以了解如何在 Android 应用中有效地管理和操作 SQLite 数据库,从而为更复杂的数据库应用打下基础。记住,实践中不断尝试和调试是掌握技术的关键。
- 1
- 粉丝: 39
- 资源: 42
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- “人力资源+大数据+薪酬报告+涨薪调薪”
- PVE系统配置优化脚本
- “人力资源+大数据+薪酬报告+涨薪调薪”
- 含源码java Swing基于socket实现的五子棋含客户端和服务端
- 【java毕业设计】鹿幸公司员工在线餐饮管理系统的设计与实现源码(springboot+vue+mysql+LW).zip
- OpenCV C++第三方库
- 毕设分享:基于SpringBoot+Vue的礼服租聘系统-后端
- 复合铜箔:预计到2025年,这一数字将跃升至291.5亿元,新材料革命下的市场蓝海
- 【java毕业设计】流浪动物管理系统源码(springboot+vue+mysql+说明文档+LW).zip
- 【源码+数据库】采用纯原生的方式,基于mybatis框架实现增删改查