Android SQLite 增、删、查、改操作源码
在Android开发中,SQLite是一个非常重要的组件,它是一个轻量级的数据库系统,用于存储应用程序中的结构化数据。SQLite数据库支持基本的SQL语法,包括增(Insert)、删(Delete)、查(Select)和改(Update)等操作。下面将详细讲解Android中如何使用SQLite进行这些操作,并提供相关的源码解析。 1. **创建SQLite数据库** 在Android中,我们通常通过`SQLiteOpenHelper`的子类来创建和管理SQLite数据库。我们需要在子类中重写`onCreate()`方法,用于创建数据库表结构。例如: ```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) { String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS MyTable ( \ _id INTEGER PRIMARY KEY AUTOINCREMENT, \ name TEXT, \ age INTEGER)"; db.execSQL(CREATE_TABLE); } } ``` 2. **插入数据(Insert)** 插入数据使用`SQLiteDatabase`的`insert()`方法。以下代码展示了如何插入一条新的记录: ```java SQLiteDatabase db = new DatabaseHelper(context).getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put("name", "John"); contentValues.put("age", 25); long insertedId = db.insert("MyTable", null, contentValues); db.close(); ``` 3. **查询数据(Select)** 查询数据使用`query()`方法,可以根据条件进行选择性查询。以下代码展示了如何查询所有记录: ```java db = new DatabaseHelper(context).getReadableDatabase(); Cursor cursor = db.query("MyTable", null, null, null, null, null, null); while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex("_id")); String name = cursor.getString(cursor.getColumnIndex("name")); int age = cursor.getInt(cursor.getColumnIndex("age")); Log.d("Data", "ID: " + id + ", Name: " + name + ", Age: " + age); } cursor.close(); db.close(); ``` 4. **更新数据(Update)** 更新数据使用`update()`方法,同样需要指定更新的条件。以下代码展示了如何根据ID更新一条记录: ```java contentValues.clear(); contentValues.put("age", 30); int updatedRows = db.update("MyTable", contentValues, "_id = ?", new String[]{"1"}); db.close(); ``` 5. **删除数据(Delete)** 删除数据使用`delete()`方法,可以按条件删除。以下代码展示了如何删除ID为1的记录: ```java int deletedRows = db.delete("MyTable", "_id = ?", new String[]{"1"}); db.close(); ``` 以上就是Android中SQLite数据库的基本操作,包括创建、插入、查询、更新和删除。这些操作通常与用户交互或在应用程序的后台运行,以处理和存储应用程序的数据。在实际项目中,为了提高效率和减少错误,通常会封装成DAO(Data Access Object)类,提供更抽象的接口供其他组件调用。通过理解这些源码,你可以更好地掌握Android应用中的数据管理。
- 1
- xingzhewuwei02014-08-12可以简单学习
- sinat_227453772015-06-15还可以,将就用
- leiliu2852012-04-28一般般啦,比较简单,适合了解基础知识
- jiangxunneng2012-03-23只有基本的SQL指令
- echofeni2013-10-17还行,将就可以用用
- 粉丝: 0
- 资源: 10
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 双有源桥DC-DC变换器与隔离型双向变换器仿真研究:光伏+蓄电池系统下的控制策略与matlab模型,双有源桥DC-DC变器仿真 隔离型双向变器 采用光伏(PV)+蓄电池+负载 光伏采用mppt 控制
- 二维傅里叶变换处理图像过程详解:灰度转换、FFT变换及零频移动,附数据格式调整指南及可运行代码,二维傅里叶变,2D傅里叶变,图像傅里叶变 matlab2018a及以上运行 对图像进行灰度处理后进行做傅
- STM32内部ADC智能光敏路灯项目:源码注释详尽,光敏采集精准,Protues仿真辅助开发,光线弱则路灯亮起,STM32内部12位ADC智能路灯项目,包括程序源码和protues仿真,通过内部ADC
- 基于C# WPF的MVVM架构大屏看板3D可视化展示与工业控件设计,数据库配置化链接,典型三层架构支持,c#WPF MVVM 大屏看板3D可视化 1,WPF编程设计; 2,自定义工业控件设计; 3,数
- Simulink在DSP2833x系列上的电机控制与通讯模型代码自动生成教程,DSP2833x系列基于模型的控制器设计 Simulik自动生成代码 DSP2833x基于模型的电机控制设计 MATLA
- 基于Matlab Simulink的模型预测控制与PI控制结合的Boost变换器均流响应研究,模型预测控制,基于两相交错并联boost变器 可完好地实现均流 模型中包含给定电压跳变和负载突变的响应
- 基于FX3U三边封制袋机:气缸式超音波型前后双伺服送料与模拟量控制变频器给料系统,基于FX3U三边封制袋机程序超音波型 前后双伺服送料,模拟量控制变频器给料,所有切刀用的气缸,不是常用制袋机的电机凸轮
- "微电网智能调控技术:二次控制与比例积分控制协同下的有功无功均分实现",微电网二次控制,下垂控制,比例积分二次控制,补偿了下垂控制的偏差,实现了有功均分和无功均分 ,核心关键词:微电网二次控制; 下垂
- 微电网二次控制策略:基于下垂控制技术的分布式事件触发机制与通信延迟处理效果研究,微电网二次控制,下垂控制,具有通信延迟的微电网分布式事件触发二次控制,实现了二次控制,效果好,有相关参考文献 ,核心
- 澳大利亚模型研究:深度解析5区电网的调压、调频、无功补偿及新能源并网暂态过程,澳大利亚5区14机59节点模型,可研究调压,调频,无功补偿,新能源并网等暂态 ,核心关键词:澳大利亚5区14机59节点
- 考虑源荷随机性的热电联供微网优化系统:基于粒子群PSO算法的经济运行优化模型与随机模拟技术研究(附Matlab程序代码),源荷不确定性 考虑源荷随机特征的热电联供微网优化matlab 复现王锐的含可
- 三菱小型PLC追剪打孔程序:基于高速计数器与编码器,中达优控触摸屏集成应用,三菱小型PLC 1S追剪程序,包装膜追剪打孔 ,拓达伺服,用脉冲加方向的模式,编码器追踪膜的速度, 由于测速度SPD指令和
- 单相H桥级联五电平逆变器SPWM调制闭环仿真研究(附关键波形图),单相H桥级联五电平逆变器仿真(SPWM)2021b 可降版本 闭环仿真 逆变器采用H桥级联的形式连接,单相负载构成 采用SPWM调制
- 基于Matlab Simulink平台的MMC逆变器并网仿真研究:PI控制策略与环流抑制技术探讨,23电平MMC逆变器并网仿真(PI控制) 基于Matlab Simulink仿真平台 采用基于PI控制
- "光伏MPPT仿真研究:直接电压法(恒定电压法)结合PID控制技术的效率优化",光伏MPPT仿真-直接电压法(恒定电压法)加PID控制, ,核心关键词:光伏MPPT仿真; 恒定电压法; 直压法; PI
- MATLAB Simulink 2021b直流微电网设计:风、光、储、负载协同控制,逆变器PQ控制,动态调节电网功率,绝对原创MATLAB Simulink 2021b 直流微电网 风、光、储、负载、