在鸿蒙平台使用 sqlite3 插件

插件介绍

fluttertpc_sqlite3 是一个 Flutter 插件,用于在鸿蒙平台上使用 SQLite 数据库。SQLite 是一个轻量级的嵌入式数据库,广泛应用于移动设备和桌面应用中。该插件提供了简单易用的 API 来进行数据库的创建、查询、插入、更新和删除操作。

主要功能包括:

  1. 数据库管理:可以创建、打开和关闭 SQLite 数据库
  2. 数据操作:支持 SQL 查询、插入、更新和删除操作
  3. 事务处理:支持事务操作,确保数据的一致性
  4. 异步操作:所有数据库操作都支持异步执行,不会阻塞 UI 线程
  5. 鸿蒙适配:专门针对鸿蒙平台进行了优化和适配

安装与使用

1. 安装方式

在项目的 pubspec.yaml 文件中添加以下依赖配置:

yaml 复制代码
dependencies:
  fluttertpc_sqlite3:
    git:
      url: "https://atomgit.com/fluttertpc/fluttertpc_sqlite3.git"

执行命令安装依赖:

bash 复制代码
flutter pub get

2. 基本使用示例

2.1 打开数据库
dart 复制代码
import 'package:fluttertpc_sqlite3/sqlite3.dart';

Future<void> openDatabase() async {
  final db = await SQLite3.openDatabase('test.db');
  print('Database opened successfully');
}
2.2 创建表
dart 复制代码
Future<void> createTable() async {
  final db = await SQLite3.openDatabase('test.db');
  await db.execute('''
    CREATE TABLE IF NOT EXISTS users (
      id INTEGER PRIMARY KEY AUTOINCREMENT,
      name TEXT NOT NULL,
      email TEXT NOT NULL UNIQUE
    )
  ''');
  print('Table created successfully');
}
2.3 插入数据
dart 复制代码
Future<void> insertData() async {
  final db = await SQLite3.openDatabase('test.db');
  await db.execute('''
    INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')
  ''');
  print('Data inserted successfully');
}
2.4 查询数据
dart 复制代码
Future<void> queryData() async {
  final db = await SQLite3.openDatabase('test.db');
  final result = await db.query('SELECT * FROM users');
  for (final row in result) {
    print('User: ${row['name']} (${row['email']})');
  }
}
2.5 更新数据
dart 复制代码
Future<void> updateData() async {
  final db = await SQLite3.openDatabase('test.db');
  await db.execute('''
    UPDATE users SET name = 'John Smith' WHERE email = 'john@example.com'
  ''');
  print('Data updated successfully');
}
2.6 删除数据
dart 复制代码
Future<void> deleteData() async {
  final db = await SQLite3.openDatabase('test.db');
  await db.execute('''
    DELETE FROM users WHERE email = 'john@example.com'
  ''');
  print('Data deleted successfully');
}
2.7 事务处理
dart 复制代码
Future<void> transactionExample() async {
  final db = await SQLite3.openDatabase('test.db');
  await db.transaction((txn) async {
    await txn.execute('''
      INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')
    ''');
    await txn.execute('''
      INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com')
    ''');
  });
  print('Transaction completed successfully');
}

3. 核心 API 说明

方法名 功能描述 参数说明 返回值类型
openDatabase(String path) 打开或创建数据库 path:数据库文件路径 Future
execute(String sql) 执行 SQL 语句 sql:要执行的 SQL 语句 Future
query(String sql) 执行查询语句 sql:要执行的查询语句 Future<List<Map<String, dynamic>>>
transaction(Future Function(Transaction) action) 执行事务操作 action:事务回调函数 Future
close() 关闭数据库 / Future

约束与限制

兼容性

该插件已在鸿蒙平台上进行了适配和测试,支持以下环境:

  • Flutter: 3.7.12-ohos-1.0.6; SDK: 5.0.0(12); IDE: DevEco Studio: 5.0.13.200; ROM: 5.1.0.120 SP3;
  • Flutter: 3.22.1-ohos-1.0.1; SDK: 5.0.0(12); IDE: DevEco Studio: 5.0.13.200; ROM: 5.1.0.120 SP3;

总结

fluttertpc_sqlite3 插件为鸿蒙平台提供了一个简单易用的 SQLite 数据库操作接口,支持常见的数据库操作和事务处理。通过该插件,开发者可以轻松地在 Flutter 应用中实现数据的持久化存储,适用于各种需要本地数据存储的场景。

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net

相关推荐
独守一片天4 小时前
HarmonyOS 鸿蒙碰一碰与跨端协同体验怎么设计?
华为·harmonyos
yuhulkjv3357 小时前
Gemini鸿蒙版导出word格式的终极解法:AI 导出鸭如何重构AI内容落地链路
人工智能·ai·word·harmonyos·ai导出鸭
whyutianict_vv10 小时前
从 Web 前端到 HarmonyOS ArkTS:一次 AI 鸿蒙全栈智能体开发的迁移实录
前端·人工智能·harmonyos
m0_7496902310 小时前
【寻迹校园 HarmonyOS NEXT 实战 01】从校园痛点到可上架 MVP:失物招领应用产品设计
人工智能·深度学习·移动开发·harmonyos·arkts·arkui·产品设计
m0_7496902310 小时前
【寻迹校园 HarmonyOS NEXT 实战 03】NavPathStack 路由实战:18 个页面如何集中管理
华为·移动开发·harmonyos·arkui·navigation·navpathstack
m0_7496902311 小时前
【寻迹校园 HarmonyOS NEXT 实战 02】多模块工程拆解:entry、HAR 与 HSP 如何分工
华为·harmonyos·arkts·软件架构·har·hsp
用户09340777351412 小时前
HarmonyOS WPS Open SDK 实践:用 SdkConstants 判断当前 HAR 形态
harmonyos
独守一片天13 小时前
HarmonyOS鸿蒙新生态智能体意图框架怎么设计?
华为·harmonyos
梦想不只是梦与想1 天前
鸿蒙应用api的兼容性:参数配置(二)
harmonyos·sdk版本·sdkversion
北墨NoLimit1 天前
鸿蒙线程间通信怎么选:TaskPool、TaskGroup、LongTask 与 Worker 实战
typescript·harmonyos