Android 操作数据库实例.rar
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
在Android应用开发中,数据库是存储和管理应用程序数据的关键组件。本实例主要讲解如何在Android平台上操作SQLite数据库,包括创建数据库、创建表、插入数据、查询数据、更新数据以及删除数据等基本操作。 Android系统默认支持SQLite数据库,这是一种轻量级的、文件级的数据库,适合移动设备资源有限的环境。SQLite数据库的所有操作都可以通过SQL语句来完成,而Android提供了SQLiteOpenHelper类作为数据库操作的基础框架。 1. 创建数据库: 在Android中,我们需要创建一个继承自SQLiteOpenHelper的类,例如名为MyDatabaseHelper。在这个类中,我们需要重写`onCreate()`方法来创建数据库,通常是在这里执行`CREATE TABLE` SQL语句。同时,还需要重写`onUpgrade()`方法来处理数据库版本升级时的表结构变更。 2. 创建表: 假设我们要创建一个名为"Users"的表,可以这样编写SQL语句: ```sql CREATE TABLE Users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, email TEXT UNIQUE ); ``` 这将创建一个包含id(主键,自动递增),name(非空文本)和email(唯一文本)字段的表。 3. 插入数据: 使用SQL的`INSERT INTO`语句将数据插入到表中,如: ```java String sql = "INSERT INTO Users (name, email) VALUES (?, ?)"; SQLiteDatabase db = myDatabaseHelper.getWritableDatabase(); db.beginTransaction(); try { SQLiteStatement stmt = db.compileStatement(sql); stmt.bindString(1, "John Doe"); stmt.bindString(2, "john.doe@example.com"); stmt.executeInsert(); db.setTransactionSuccessful(); } finally { db.endTransaction(); } ``` 这里使用了SQLiteStatement对象进行预编译,提高性能并防止SQL注入。 4. 查询数据: `SELECT`语句用于从表中检索数据。例如,要获取所有用户,可以使用: ```java Cursor cursor = db.query("Users", null, null, null, null, null, null); if (cursor.moveToFirst()) { do { String name = cursor.getString(cursor.getColumnIndex("name")); String email = cursor.getString(cursor.getColumnIndex("email")); // 处理数据... } while (cursor.moveToNext()); } cursor.close(); ``` 注意,使用完Cursor后记得关闭它,以释放资源。 5. 更新数据: 使用`UPDATE`语句修改已存在的记录,如: ```java String sql = "UPDATE Users SET name = ?, email = ? WHERE id = ?"; db.beginTransaction(); try { SQLiteStatement stmt = db.compileStatement(sql); stmt.bindString(1, "Jane Doe"); stmt.bindString(2, "jane.doe@example.com"); stmt.bindLong(3, 1); // 更新id为1的用户 stmt.executeUpdateDelete(); db.setTransactionSuccessful(); } finally { db.endTransaction(); } ``` 6. 删除数据: `DELETE`语句用于从表中删除记录,例如: ```java String sql = "DELETE FROM Users WHERE id = ?"; db.beginTransaction(); try { SQLiteStatement stmt = db.compileStatement(sql); stmt.bindLong(1, 1); // 删除id为1的用户 stmt.executeUpdateDelete(); db.setTransactionSuccessful(); } finally { db.endTransaction(); } ``` 7. 数据库事务: 为了保证数据的一致性,可以使用开始和结束事务来包裹多个数据库操作,如上所示。 8. 内存管理: 在不使用数据库时,记得关闭`SQLiteOpenHelper`和`SQLiteDatabase`实例,以避免内存泄漏。 9. 数据库升级: 当数据库版本需要升级时,可以通过`onUpgrade()`方法更新表结构或迁移数据。例如,增加新字段: ```java @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { if (oldVersion < 2) { String sql = "ALTER TABLE Users ADD COLUMN phone TEXT"; db.execSQL(sql); } } ``` 以上就是Android操作SQLite数据库的基本步骤和示例,开发者可以根据实际需求扩展这些功能,实现更复杂的数据库操作和数据管理。在实际项目中,还可能需要考虑数据备份、恢复、同步等问题,以及使用ContentProvider和Loader等高级特性来更好地管理数据和与其他应用共享数据。
- 1
- 粉丝: 5920
- 资源: 10万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【计算机视觉基础CV】03-深度学习图像分类实战:鲜花数据集加载与预处理详解
- 基于matlab实现的锁模光纤激光器仿真源码+文档说明(高分项目)
- 基于OpenCV全景图像拼接系统源代码(完整前后端+mysql+说明文档+LW).zip
- 知名厂家电动四轮车控制器代码,包含PCB文件,pdf原理图,代码齐全,风格很好
- 基于matlab实现的锁模光纤激光器仿真源码(高分项目)
- 基于python的大学生就业信息管理系统(django)源代码(完整前后端+mysql+说明文档+LW).zip
- 一个同步机无传感滑膜观测器模型加代码,该模型基于28035芯片,采用了典型的smo+pll方案 这段代码是实际应用代码,而不是一般的玩票代码,因此具有较高的可比性(不同于ti例程) 需要注意的是,少数
- 简单好用的移动手机端ASP报名程序(含access数据库)
- 基于深度学习的安全帽佩戴检测wlw源代码(完整前后端+mysql+说明文档+LW).zip
- OBC车载充电机6.6kw,国内OBC车载充电机NO.1 硬件原理图和软件源码符合15年国标