第一章:SQLite 核心概念
-
本质 :Android 内置的轻量级嵌入式数据库
-
核心优势:
-
算速度快 ,资源占用少
-
支持标准的 SQL 语法
-
无需单独服务器进程
-
-
运主要用途 :存储和管理应用程序的结构化数据
-
安全警示 :通过真实案例(高校数据泄露)强调数据库文件安全存储的重要性
第二章:创建与打开数据库的三种核心方式
-
openDatabase()-
功能 :打开已存在的数据库
-
关键参数:
-
path:数据库文件路径 -
factory:游标工厂(可自定义Cursor) -
flags:控制打开模式(如只读、读写等)
-
-
-
openOrCreateDatabase(File file, ...)-
功能 :通过 File 对象打开或创建数据库
-
特点 :文件不存在时自动创建
-
-
openOrCreateDatabase(String path, ...)-
功能 :通过字符串路径打开或创建数据库
-
特点:最常用的快速创建方式
-
第三章:数据库的增删改查(CRUD)操作详解
1. 插入操作
-
方法 :
insert(String table, String nullColumnHack, ContentValues values) -
核心组件 :ContentValues(类似Map的键值对容器)
-
返回值 :新插入行的ID (
long类型),-1 表示失败 -
示例场景:向用户表添加新用户记录
2. 删除操作
-
方法 :
delete(String table, String whereClause, String[] whereArgs) -
条件构造 :使用
whereClause和whereArgs防止SQL注入 -
返回值 :被删除的行数
-
示例场景:根据ID和状态联合条件删除记录
3. 更新操作
-
方法 :
update(String table, ContentValues values, String whereClause, String[] whereArgs) -
更新逻辑:通过ContentValues指定新值,where条件定位记录
-
返回值 :被更新的行数
-
示例场景:更新用户状态和时间戳
4. 查询操作
-
方法1 :
query()- 多参数重载版本-
distinct:是否去重 -
columns:要查询的列名数组 -
whereClause:WHERE条件子句 -
whereArgs:条件参数值 -
groupBy:分组条件 -
having:分组后的过滤 -
orderBy:排序方式 -
limit:结果集限制条数
-
-
方法2 :
rawQuery()- 原始SQL查询-
直接执行完整SQL语句
-
支持预编译占位符
-
第四章:其他重要操作方法
-
execSQL():执行非查询类SQL(建表、删表等) -
beginTransaction():开启数据库事务,保证数据一致性
第五章:查询结果处理 - Cursor 游标详解
-
移动方法:
-
moveToFirst()/moveToLast()- 移动到首行/末行 -
moveToNext()/moveToPrevious()- 前后移动 -
moveToPosition()- 移动到指定位置 -
move(int offset)- 相对当前位置移动
-
-
使用模式 :通常配合
while (cursor.moveToNext())遍历结果集
第六章:SQLiteOpenHelper - 数据库管理辅助类
核心方法:
-
getReadableDatabase():获取可读数据库实例 -
getWritableDatabase():获取可写数据库实例 -
onCreate(SQLiteDatabase db):数据库首次创建时调用(建表逻辑) -
onUpgrade(db, oldVersion, newVersion):数据库版本升级时调用(表结构迁移) -
close():关闭数据库连接,释放资源
设计特点:
-
采用模板方法模式,封装数据库创建和升级逻辑
-
提供synchronized同步访问,保证线程安全
-
自动处理数据库版本管理
第七章:开发实践与安全规范
-
参数化查询 :始终使用
whereArgs避免SQL注入攻击 -
事务处理:批量操作时使用事务提升性能
-
资源释放:及时关闭Cursor和Database连接
-
数据加密:敏感数据考虑使用SQLCipher等加密方案
-
文件存储:数据库文件应存放在应用安全目录中