利用Android中的SQLite进行CRUD
在Android应用开发中,SQLite是一个重要的组成部分,它是一个轻量级的数据库系统,允许开发者在移动设备上存储和管理数据。这篇博客“利用Android中的SQLite进行CRUD”将深入探讨如何在Android应用中使用SQLite进行基本的数据操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。 我们需要了解Android是如何集成SQLite的。Android系统提供了一个SQLiteOpenHelper类,它是处理SQLite数据库的主要入口点。这个类包含两个关键方法:`onCreate()` 和 `onUpgrade()`。`onCreate()` 在数据库首次创建时被调用,用于构建数据库结构;`onUpgrade()` 当数据库版本升级时执行,可以用来修改数据库表结构或执行其他升级任务。 创建数据库和表结构通常在SQLiteOpenHelper的子类中完成。例如: ```java public class DatabaseHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "MyDatabase.db"; public static final String TABLE_NAME = "Student"; public static final String COL_1 = "ID"; public static final String COL_2 = "NAME"; public static final String COL_3 = "MARKS"; // 创建数据库 @Override public void onCreate(SQLiteDatabase db) { String createTable = "CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " + "NAME TEXT, MARKS INTEGER)"; db.execSQL(createTable); } // 数据库版本升级 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } } ``` 接下来是CRUD操作: 1. **创建(Create)**:使用SQL的`INSERT INTO`语句向表中添加数据。在Android中,这通常通过SQLiteOpenHelper的子类的实例和SQLiteDatabase对象来完成。 ```java public boolean insertData(String name, String marks) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(COL_2, name); contentValues.put(COL_3, marks); long result = db.insert(TABLE_NAME, null, contentValues); if (result == -1) return false; else return true; } ``` 2. **读取(Read)**:使用`SELECT`语句从数据库中检索数据。可以使用`query()`方法来执行查询,并通过Cursor对象遍历结果。 ```java public Cursor getAllData() { SQLiteDatabase db = this.getWritableDatabase(); Cursor res = db.rawQuery("select * from " + TABLE_NAME, null); return res; } ``` 3. **更新(Update)**:使用`UPDATE`语句更新现有记录。这需要指定一个或多个条件来确定要更新的行。 ```java public boolean updateData(String id, String name, String marks) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(COL_1, id); contentValues.put(COL_2, name); contentValues.put(COL_3, marks); db.update(TABLE_NAME, contentValues, "ID = ?", new String[]{id}); return true; } ``` 4. **删除(Delete)**:使用`DELETE`语句从数据库中移除数据。同样,可能需要提供一个或多个条件来确定要删除的行。 ```java public Integer deleteData(String id) { SQLiteDatabase db = this.getWritableDatabase(); return db.delete(TABLE_NAME, "ID = ?", new String[]{id}); } ``` 此外,为了在UI层面上与数据库交互,可以使用ContentProvider,它提供了标准的接口供其他应用组件访问数据。另外,LoaderManager可以帮助管理数据加载过程,确保在UI线程之外执行查询,从而避免阻塞用户界面。 记得在应用不再需要数据库连接时关闭它,以节省资源。在Android应用中,通常在Activity或Fragment的生命周期方法中管理这些操作。 Android的SQLite支持为开发者提供了高效、灵活的数据存储解决方案,通过SQLiteOpenHelper和相关的SQLite命令,可以轻松地进行CRUD操作,实现数据的持久化存储。通过阅读这篇博客,你可以深入了解如何在Android应用中有效地使用SQLite数据库。
- 1
- 粉丝: 386
- 资源: 6万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Vue.js 是一个流行的前端 JavaScript 框架,用于构建用户界面 它因其简洁的 API 和易于学习的特性而受到广泛欢
- 在项目中实现半同步和半异步进程池,并使用epoll I-O复用ET模式进行事件监控;使用哈希算法选择物理服务器进行连接分配,并添
- crontablllllll
- Maven 是一个强大的项目管理和构建工具,主要用于 Java 项目的构建、依赖管理和项目信息管理
- 2023-04-06-项目笔记 - 第二百八十五阶段 - 4.4.2.283全局变量的作用域-283 -2025.10.13
- C语言10.8题目详解
- helloworld3.jsp
- csi-node-driver-registrar.zip
- 2023-04-06-项目笔记 - 第二百八十五阶段 - 4.4.2.283全局变量的作用域-283 -2025.10.13
- python的匿名函数lambda