flutter-hive-database

👤 symboy 📦 v1.0.0 ⭐ 4.5 ⬇️ 872 下载
💻 开发编程 免费

📖 技能介绍


name: flutter-hive-database description: 在 Flutter 项目中封装 Hive 本地数据库服务,遵循 Repository 模式和 MVVM 架构。当用户需要使用 Hive 数据库、本地持久化存储、离线数据缓存、或提到 hive、本地数据库、数据持久化时使用。支持三种独立模式:创建数据服务、创建数据库操作、创建数据模型并自动注入 CRUD。


Flutter Hive 数据库封装

存储策略

模型 → toJson()Box<Map>fromJson() → 模型

  • 无需 TypeAdapter,无 ~200 个类型上限
  • 无需 build_runner,依赖精简
  • HiveService 懒加载 Box,新增模型无需修改 Service

目录结构

lib/
├── services/
│   ├── hive_service.dart          # 模式1:数据服务
│   └── hive_repository.dart       # 模式1:基类
└── <feature>/
    └── database/
        ├── <name>_repository.dart # 模式2:数据库操作
        └── models/
            └── <name>_model.dart  # 模式3:数据模型

三种触发模式

模式1:创建数据服务

触发词:「创建数据服务」「初始化 Hive」「配置 Hive」

执行命令

python ~/.cursor/skills/flutter-hive-database/scripts/generate.py \
  --mode service \
  --project <项目根目录绝对路径>

生成文件: - lib/service/hive_service.dart — 懒加载 Box 管理 - lib/service/hive_repository.dart — 通用 CRUD 基类

完成后在 main.dart 添加:

import 'package:<pkg>/service/hive_service.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await HiveService.init();
  runApp(const MyApp());
}

模式2:创建 xxx 数据库操作

触发词:「创建xxx数据库操作」「创建xxx的 Repository」

执行前询问用户

请问功能模块的路径是什么?(如 features/useruser) Repository 的名称是什么?(PascalCase,如 User

执行命令

python ~/.cursor/skills/flutter-hive-database/scripts/generate.py \
  --mode repository \
  --project <项目根目录绝对路径> \
  --feature <lib下的功能路径> \
  --name <PascalCase名称>

示例

python generate.py --mode repository \
  --project /Users/me/myapp \
  --feature features/user \
  --name User

生成文件: - lib/features/user/database/user_repository.dart — 含原始 Map CRUD,等待模型注入


模式3:创建数据模型(并注入 CRUD)

触发词:「创建xxx数据模型」「提供 JSON 创建数据库模板」

执行前询问用户

小葱技能7w4.net持续更新中。

请提供实体的 JSON 数据或字段定义

entity 参数格式

{
  "name": "User",
  "fields": [
    {"name": "id",        "type": "int",      "nullable": false},
    {"name": "name",      "type": "String",   "nullable": false},
    {"name": "age",       "type": "int",      "nullable": true},
    {"name": "createdAt", "type": "DateTime", "nullable": false}
  ]
}

支持的 typeintdoubleStringboolDateTimeListMap

执行命令

python ~/.cursor/skills/flutter-hive-database/scripts/generate.py \
  --mode model \
  --project <项目根目录绝对路径> \
  --feature <lib下的功能路径> \
  --entity '<JSON字符串>'

示例

python generate.py --mode model \
  --project /Users/me/myapp \
  --feature features/user \
  --entity '{"name":"User","fields":[{"name":"id","type":"int","nullable":false},{"name":"name","type":"String","nullable":false}]}'

生成 / 更新文件: - lib/features/user/database/models/user_model.dart — 模型(含 toJson/fromJson/copyWith) - lib/features/user/database/user_repository.dart自动注入 save/findById/getAll/update/deleteById 方法

如果 Repository 不存在,脚本会自动创建后再注入


依赖配置

flutter pub add hive_ce hive_ce_flutter

无需 hive_ce_generator,无需 build_runner

验证清单

  • [ ] HiveService.init()runApp() 之前调用
  • [ ] UI 层只通过 Repository 操作数据,不直接调用 HiveService
  • [ ] fromJson 中可选字段使用 as Type? 保证旧数据兼容

参考文件

🤖 AI 评测

这个 Skill 功能完整,文档编写清晰详细,代码生成逻辑有安全校验,三种模式设计合理。但缺少实际示例代码和测试支持,用户上手时可能感到缺乏参考。整体质量中上,文档方面做得较好,代码方面还有提升空间。

📊 多维度评分

适应性4.6
规范性4.4
有效性4.6
可靠性3.9
可信度4.9

📁 包含文件 (4 个)

📄 SKILL.md 4.3 KB
📄 _meta.json 140 B
📄 scripts/generate.py 17.5 KB
📄 skill-card.md 2 KB