在Android应用开发中,SQLite是一个重要的组成部分,它是一个轻量级的数据库系统,适用于存储应用程序中的结构化数据。SQLite数据库可以实现本地数据持久化,无需依赖服务器,这使得它成为移动设备上的理想选择。本教程将详细介绍如何在Android中进行SQLite数据库的增删改查操作。 **一、创建SQLite数据库** 1. 我们需要创建一个SQLiteOpenHelper的子类,这个类用于管理数据库的创建和版本管理。在这个子类中,我们需要重写`onCreate()`和`onUpgrade()`方法。 ```java public class DatabaseHelper extends SQLiteOpenHelper { // 数据库版本号 private static final int DATABASE_VERSION = 1; // 数据库名 private static final String DATABASE_NAME = "MyDatabase.db"; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建表的SQL语句 String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "(" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + COLUMN_NAME + " TEXT," + COLUMN_AGE + " INTEGER" + ")"; db.execSQL(CREATE_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 更新数据库版本时的处理 db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } } ``` **二、插入数据(Insert)** 在Android中,我们可以使用SQLiteDatabase对象的`insert()`方法来向数据库中插入数据。以下是一个示例: ```java public long insertData(String name, int age) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(COLUMN_NAME, name); contentValues.put(COLUMN_AGE, age); long result = db.insert(TABLE_NAME, null, contentValues); db.close(); return result; } ``` **三、查询数据(Select)** 查询数据通常使用`query()`方法。我们可以根据需求指定不同的查询条件,如获取所有数据、按条件筛选等。 ```java public Cursor getAllData() { SQLiteDatabase db = this.getReadableDatabase(); Cursor res = db.rawQuery("select * from " + TABLE_NAME, null); return res; } ``` **四、更新数据(Update)** 更新数据使用`update()`方法,需要提供一个ContentValues对象来存储更新后的值,以及一个WHERE子句来确定要更新哪些行。 ```java public int updateData(String newName, int newAge, int id) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(COLUMN_NAME, newName); contentValues.put(COLUMN_AGE, newAge); int result = db.update(TABLE_NAME, contentValues, COLUMN_ID + " = ? ", new String[]{String.valueOf(id)}); db.close(); return result; } ``` **五、删除数据(Delete)** 删除数据使用`delete()`方法,同样需要一个WHERE子句来指定删除的条件。 ```java public int deleteData(int id) { SQLiteDatabase db = this.getWritableDatabase(); int result = db.delete(TABLE_NAME, COLUMN_ID + " = ?", new String[]{String.valueOf(id)}); db.close(); return result; } ``` 在实际应用中,我们还需要处理异常,确保数据操作的正确性和安全性。例如,每次打开或关闭数据库时都应该使用try-catch-finally块,并确保在finally中关闭数据库连接。 通过以上步骤,我们就可以在Android应用中实现SQLite数据库的基本操作了。在项目中,通常会封装一个DAO(Data Access Object)类,将这些操作打包成更易用的方法,方便在业务逻辑层调用。在`MyAndroidSqliteDemo`这个项目中,你可以找到具体的实现代码和示例,进一步学习和理解这些操作。
- 1
- 粉丝: 0
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C#源码 上位机 联合Visionpro 通用框架开发源码,已应用于多个项目,整套设备程序,可以根据需求编出来,具体Vpp功能自己编 程序包含功能 1.自动设置界面窗体个数及分布 2.照方式以命令触
- 程序名称:悬架设计计算程序 开发平台:基于matlab平台 计算内容:悬架偏频刚度挠度;螺旋弹簧,多片簧,少片簧,稳定杆,减震器的匹配计算;悬架垂向纵向侧向力学、纵倾、侧倾校核等;独立悬架杠杆比,等效
- 华为OD+真题及解析+智能驾驶
- jQuery信息提示插件
- 基于stm32的通信系统,sim800c与服务器通信,无线通信监测,远程定位,服务器通信系统,gps,sim800c,心率,温度,stm32 由STM32F103ZET6单片机核心板电路、DS18B2
- 充电器检测9-YOLO(v5至v11)、COCO、Create充电器检测9L、Paligemma、TFRecord、VOC数据集合集.rar
- 华为OD+考试真题+实现过程
- 保险箱检测51-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 五相电机邻近四矢量SVPWM模型-MATLAB-Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成; (2)输出部分仿
- 一对一MybatisProgram.zip