Android SQLite 数据库开发完全指南:从核心概念到高级操作

第一章:SQLite 核心概念

  1. 本质 :Android 内置的轻量级嵌入式数据库

  2. 核心优势

    • 速度快 ,资源占用少

    • 支持标准的 SQL 语法

    • 无需单独服务器进程

  3. 主要用途 :存储和管理应用程序的结构化数据

  4. 安全警示 :通过真实案例(高校数据泄露)强调数据库文件安全存储的重要性


第二章:创建与打开数据库的三种核心方式

  1. openDatabase()

    • 功能 :打开已存在的数据库

    • 关键参数

      • path:数据库文件路径

      • factory游标工厂(可自定义Cursor)

      • flags:控制打开模式(如只读、读写等)

  2. openOrCreateDatabase(File file, ...)

    • 功能 :通过 File 对象打开或创建数据库

    • 特点 :文件不存在时自动创建

  3. openOrCreateDatabase(String path, ...)

    • 功能 :通过字符串路径打开或创建数据库

    • 特点:最常用的快速创建方式


第三章:数据库的增删改查(CRUD)操作详解

1. 插入操作
  • 方法insert(String table, String nullColumnHack, ContentValues values)

  • 核心组件ContentValues(类似Map的键值对容器)

  • 返回值 :新插入行的IDlong类型),-1 表示失败

  • 示例场景:向用户表添加新用户记录

2. 删除操作
  • 方法delete(String table, String whereClause, String[] whereArgs)

  • 条件构造 :使用 whereClausewhereArgs 防止SQL注入

  • 返回值 :被删除的行数

  • 示例场景:根据ID和状态联合条件删除记录

3. 更新操作
  • 方法update(String table, ContentValues values, String whereClause, String[] whereArgs)

  • 更新逻辑:通过ContentValues指定新值,where条件定位记录

  • 返回值 :被更新的行数

  • 示例场景:更新用户状态和时间戳

4. 查询操作
  • 方法1query() - 多参数重载版本

    • distinct:是否去重

    • columns:要查询的列名数组

    • whereClauseWHERE条件子句

    • whereArgs:条件参数值

    • groupBy分组条件

    • having:分组后的过滤

    • orderBy排序方式

    • limit:结果集限制条数

  • 方法2rawQuery() - 原始SQL查询

    • 直接执行完整SQL语句

    • 支持预编译占位符


第四章:其他重要操作方法

  1. execSQL() :执行非查询类SQL(建表、删表等)

  2. beginTransaction() :开启数据库事务,保证数据一致性


第五章:查询结果处理 - Cursor 游标详解

  1. 移动方法

    • moveToFirst() / moveToLast() - 移动到首行/末行

    • moveToNext() / moveToPrevious() - 前后移动

    • moveToPosition() - 移动到指定位置

    • move(int offset) - 相对当前位置移动

  2. 使用模式 :通常配合 while (cursor.moveToNext()) 遍历结果集


第六章:SQLiteOpenHelper - 数据库管理辅助类

核心方法
  1. getReadableDatabase() :获取可读数据库实例

  2. getWritableDatabase() :获取可写数据库实例

  3. onCreate(SQLiteDatabase db) :数据库首次创建时调用(建表逻辑)

  4. onUpgrade(db, oldVersion, newVersion) :数据库版本升级时调用(表结构迁移)

  5. close() :关闭数据库连接,释放资源

设计特点
  • 采用模板方法模式,封装数据库创建和升级逻辑

  • 提供synchronized同步访问,保证线程安全

  • 自动处理数据库版本管理


第七章:开发实践与安全规范

  1. 参数化查询 :始终使用 whereArgs 避免SQL注入攻击

  2. 事务处理:批量操作时使用事务提升性能

  3. 资源释放:及时关闭Cursor和Database连接

  4. 数据加密:敏感数据考虑使用SQLCipher等加密方案

  5. 文件存储:数据库文件应存放在应用安全目录中

相关推荐
stevenzqzq1 天前
android启动初始化和注入理解3
android
代码游侠1 天前
应用——智能配电箱监控系统
linux·服务器·数据库·笔记·算法·sqlite
城东米粉儿1 天前
compose 状态提升 笔记
android
粤M温同学1 天前
Android 实现沉浸式状态栏
android
ljt27249606611 天前
Compose笔记(六十八)--MutableStateFlow
android·笔记·android jetpack
stevenzqzq1 天前
Android Studio 断点调试核心技巧总结
android·ide·android studio
aqi001 天前
FFmpeg开发笔记(九十八)基于FFmpeg的跨平台图形用户界面LosslessCut
android·ffmpeg·kotlin·音视频·直播·流媒体
stevenzqzq1 天前
android Initializer 启动入门
android
七夜zippoe1 天前
领域驱动设计在Python中的实现:从理论到生产级实践
数据库·python·sqlite·ddd·pydantic