name: flutter-hive-database description: 在 Flutter 專案中封裝 Hive 本地資料庫服務,遵循 Repository 模式和 MVVM 架構。當用戶需要使用 Hive 資料庫、本地持久化儲存、離線資料快取、或提到 hive、本地資料庫、資料持久化時使用。支援三種獨立模式:建立資料服務、建立資料庫操作、建立資料模型並自動注入 CRUD。
模型 → toJson() → Box<Map> → fromJson() → 模型
build_runner,依賴精簡lib/
├── services/
│ ├── hive_service.dart # 模式1:資料服務
│ └── hive_repository.dart # 模式1:基類
└── <feature>/
└── database/
├── <name>_repository.dart # 模式2:資料庫操作
└── models/
└── <name>_model.dart # 模式3:資料模型
觸發詞:「建立資料服務」「初始化 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());
}
觸發詞:「建立xxx資料庫操作」「建立xxx的 Repository」
執行前詢問使用者:
請問功能模組的路徑是什麼?(如
features/user或user) 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,等待模型注入
觸發詞:「建立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}
]
}
支援的 type:int、double、String、bool、DateTime、List、Map
執行命令:
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() 之前呼叫fromJson 中可選欄位使用 as Type? 保證舊資料相容這個 Skill 功能完整,文件編寫清晰詳細,程式碼生成邏輯有安全校驗,三種模式設計合理。但缺少實際示例程式碼和測試支援,使用者上手時可能感到缺乏參考。整體質量中上,文件方面做得較好,程式碼方面還有提升空間。