HarmonyOS鸿蒙Next中Flutter tips Flutter 中 sqflite 的基本使用

HarmonyOS鸿蒙Next中Flutter tips Flutter 中 sqflite 的基本使用 sqflite 是 Flutter 生态中用于本地 SQLite 数据库操作的核心插件,支持 iOS 和 Android 平台,下面我会从环境配置、核心操作(增删改查) 一步步带你实现,所有代码均可直接运行。

一、前置准备(环境配置)

  1. 添加依赖打开项目的 pubspec.yaml 文件,在 dependencies 节点下添加两个依赖(sqflite 负责数据库操作,path 负责处理数据库文件路径,避免跨平台路径问题):
  2. cke_785.png
  3. 安装依赖保存文件后,执行终端命令安装依赖:
  4. flutter pub get
  5. 导入包在需要使用 sqflite 的 Dart 文件中,导入相关包:
  6. import ‘package:sqflite/sqflite.dart’;
  7. import ‘package:path/path.dart’;

二、核心步骤:数据库与表的创建

sqflite 操作的第一步是打开 / 创建数据库,并在数据库创建时创建数据表(SQLite 本身无单独的「创建表」初始化钩子,通常在打开数据库时判断表是否存在,不存在则创建)。

下面封装一个获取数据库实例的工具方法,以「用户表(user)」为例(包含 id(主键)、name(用户名)、age(年龄)三个字段):

cke_10194.png

三、核心操作:增删改查(CRUD)

以「用户表(user)」为例,实现最常用的四种操作,所有操作均为异步(返回 Future),需使用 async/await 处理。

新增数据(Create)

user 表中插入一条用户数据,使用 insert() 方法,参数为「表名」和「待插入数据(Map 格式,key 对应表字段)」。

cke_12655.png

查询数据(Read)

支持查询所有数据按条件查询单条数据,使用 query() 方法(简单查询)或 rawQuery() 方法(复杂 SQL 语句查询)。

cke_15645.png

更新数据(Update)

更新已存在的用户数据,使用 update() 方法,需要指定「更新条件」(避免更新全表)。

cke_19107.png

删除数据(Delete)

删除用户数据,使用 delete() 方法,同样需要指定「删除条件」。

cke_22732.png

四、使用示例(在 Widget 中调用)

在 Flutter 页面中调用上述方法,演示完整流程(使用 ElevatedButton 触发操作,FutureBuilder 展示查询结果):

cke_27228.png

cke_29881.png

五、注意事项

  1. 异步操作:sqflite 的所有数据库操作都是异步的,必须使用 async/await 处理,不能直接同步获取结果。
  2. 主键自增:SQL 语句中 id INTEGER PRIMARY KEY AUTOINCREMENT 表示 id 是主键且自增,插入数据时无需手动传入 id
  3. SQL 注入防护:查询 / 更新 / 删除时,使用 where 占位符 ? + whereArgs 传递参数,不要直接拼接字符串(避免 SQL 注入)。
  4. 数据库关闭:一般情况下,Flutter 应用退出时会自动关闭数据库,无需手动处理;如果需要主动关闭,可调用 await _db?.close()
  5. 跨平台兼容path 插件已处理跨平台路径问题,无需手动区分 iOS 和 Android 的存储目录。
  6. 总结
  7. sqflite 核心依赖 sqflitepath,前者负责数据库操作,后者处理跨平台文件路径。
  8. 核心流程:初始化数据库(创建表)→ 执行 CRUD 操作(增删改查),所有操作均为异步。
  9. 常用方法:openDatabase()(打开 / 创建数据库)、insert()(新增)、query()(查询)、update()(更新)、delete()(删除)。

更多关于HarmonyOS鸿蒙Next中Flutter tips Flutter 中 sqflite 的基本使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

2 回复

HarmonyOS Next中Flutter应用可使用sqflite插件进行本地数据库操作。该插件支持SQLite数据库的创建、增删改查等基本功能。在鸿蒙平台上,需确保Flutter环境已适配,并通过pubspec.yaml添加sqflite依赖。使用时需注意鸿蒙系统的文件路径权限,数据库文件通常存储在应用沙箱目录内。插件API与Android/iOS平台基本一致,包括openDatabase、insert、query、update、delete等方法。

更多关于HarmonyOS鸿蒙Next中Flutter tips Flutter 中 sqflite 的基本使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


这篇关于在Flutter中使用sqflite的教程内容非常详实,涵盖了从环境配置到CRUD操作的完整流程,对于HarmonyOS Next上的Flutter应用开发同样具有参考价值。

需要明确的是,HarmonyOS Next是一个独立的操作系统,其应用开发主要使用ArkTS/ArkUI。虽然目前HarmonyOS Next的官方路线图中,并未将Flutter纳入其首选或官方的跨平台开发框架,但理论上,如果Flutter未来通过适配支持了HarmonyOS Next,其生态插件(如sqflite)的使用方式将与您在教程中描述的Android/iOS平台基本一致。

基于此,针对HarmonyOS Next环境,有几个关键点可以补充:

  1. 平台兼容性确认:在HarmonyOS Next项目中使用Flutter及sqflite前,首要步骤是确认Flutter引擎及sqflite插件是否已发布支持HarmonyOS(Next)的稳定版本。这需要查阅Flutter官方及sqflite插件的发布说明或源码仓库的Issue。

  2. 依赖与路径:教程中提到的sqflitepath插件的依赖添加方式(pubspec.yaml)是通用的。path插件处理的跨平台路径逻辑,在Flutter适配HarmonyOS后,应能自动处理HarmonyOS应用沙箱内的数据库文件存储路径。

  3. 操作与API:数据库的打开、关闭以及增删改查(CRUD)的核心API(openDatabase, insert, query, update, delete)是sqflite插件定义的,只要插件完成了对HarmonyOS的平台通道(Platform Channel)实现,这些API的使用方式就与教程完全一致,无需改变。

  4. 异步与安全:您强调的异步操作(async/await)、使用参数化查询防止SQL注入、以及主键自增等注意事项,是SQLite数据库操作的通用最佳实践,在任何支持Flutter的平台(包括潜在的HarmonyOS支持)上都至关重要。

总结:您提供的教程是一份标准的Flutter sqflite使用指南。若未来Flutter正式支持HarmonyOS Next,那么这份指南中的代码和步骤将可直接复用或仅需极小调整。当前开发者若面向HarmonyOS Next进行开发,应优先考虑使用其原生开发语言ArkTS及对应的持久化存储方案(如@ohos.data.relationalStore关系型数据库)。

回到顶部