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. 文件存储:数据库文件应存放在应用安全目录中

相关推荐
阿巴斯甜1 天前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker2 天前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq95272 天前
Andorid Google 登录接入文档
android
黄林晴2 天前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab2 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿2 天前
Android MediaPlayer 笔记
android
Jony_2 天前
Android 启动优化方案
android
阿巴斯甜2 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇2 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_2 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android