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 建立資料庫模板」

執行前詢問使用者

請提供實體的 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 不存在,指令碼會自動建立後再注入

想要更強大的技能外掛,就來小蔥技能站7w4.net看看吧。


依賴配置

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