<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Hive 是一個高效、輕量級的 NoSQL 數據庫,適用于 Flutter 和 Dart 的開發。它以高性能和簡便性著稱,特別適合需要本地存儲的小型到中型數據集的場景:

      Hive 的主要特點:

      高性能:Hive 是內存映射的數據庫,具有快速的讀寫性能。

      輕量級:不依賴于 SQL,數據庫文件小,適合移動端使用 還可以在web端使用。

      簡單易用:API 設計簡潔,容易上手。

      無需網絡連接:所有數據都保存在本地,適合離線應用。

      支持 Dart 對象:Hive 允許直接存儲和讀取 Dart 對象,無需額外的序列化步驟。

      添加依賴

        hive: ^2.2.3
        hive_flutter: ^1.1.0
        path_provider: ^2.1.3 #獲取文件儲存位置

      封裝

      class HiveUtil {
        HiveUtil._internal(); // 私有的構造方法,防止外部實例化
      
        factory HiveUtil() => _instance; // 工廠方法,返回 HiveUtil 唯一實例
      
        static late final HiveUtil _instance = HiveUtil._internal(); // HiveUtil 唯一實例
      
        static late Box _box; // Hive Box 對象
      
        static Future<HiveUtil> getInstance(String boxName) async {
          if (!Hive.isBoxOpen(boxName)) {
            _box = await Hive.openBox(boxName); // 打開 Hive Box 實例
          } else {
            _box = Hive.box(boxName); // 如果已經打開,則獲取實例
          }
          return _instance;
        }
      
      //根據hive刪除整個文件
        Future<bool> deleteBox(String boxName) async {
          try {
            await Hive.deleteBoxFromDisk(boxName);
            return true; // 刪除成功
          } catch (e) {
            return false; // 刪除失敗
          }
        }
      
        // 根據 key 刪除數據,并返回刪除是否成功
        static Future<bool> deleteKey(String key) async {
          try {
            await _box.delete(key);
      
            // 驗證鍵是否仍存在
            bool isDeleted = !_box.containsKey(key);
            return isDeleted;
          } catch (e) {
            return false; // 刪除失敗
          }
        }
      
        /// 根據 key 存儲 int 類型
        static Future<void> setInt(String key, int value) async {
          await _box.put(key, value); // 使用 Hive 存儲 int 類型的數據
        }
      
        /// 根據 key 獲取 int 類型
        static int? getInt(String key, {int defaultValue = 0}) {
          return _box.get(key,
              defaultValue: defaultValue); // 使用 Hive 獲取 int 類型數據,如果不存在則返回默認值
        }
      
        /// 根據 key 存儲 double 類型
        static Future<void> setDouble(String key, double value) async {
          await _box.put(key, value); // 使用 Hive 存儲 double 類型的數據
        }
      
        /// 根據 key 獲取 double 類型
        static double? getDouble(String key, {double defaultValue = 0.0}) {
          return _box.get(key,
              defaultValue: defaultValue); // 使用 Hive 獲取 double 類型數據,如果不存在則返回默認值
        }
      
        /// 根據 key 存儲字符串類型
        static Future<void> setString(String key, String value) async {
          await _box.put(key, value); // 使用 Hive 存儲字符串類型的數據
        }
      
        /// 根據 key 獲取字符串類型
        static String? getString(String key, {String defaultValue = ""}) {
          return _box.get(key,
              defaultValue: defaultValue); // 使用 Hive 獲取字符串類型數據,如果不存在則返回默認值
        }
      
        /// 根據 key 存儲布爾類型
        static Future<void> setBool(String key, bool value) async {
          await _box.put(key, value); // 使用 Hive 存儲布爾類型的數據
        }
      
        /// 根據 key 獲取布爾類型
        static bool? getBool(String key, {bool defaultValue = false}) {
          return _box.get(key,
              defaultValue: defaultValue); // 使用 Hive 獲取布爾類型數據,如果不存在則返回默認值
        }
      
        /// 根據 key 存儲字符串類型數組
        static Future<void> setStringList(String key, List<String> value) async {
          await _box.put(key, value); // 使用 Hive 存儲字符串類型數組
        }
      
        /// 根據 key 獲取字符串類型數組
        static List<String> getStringList(String key,
            {List<String> defaultValue = const []}) {
          return _box.get(key,
              defaultValue: defaultValue); // 使用 Hive 獲取字符串類型數組,如果不存在則返回默認值
        }
      
        /// 根據 key 存儲 Map 類型
        static Future<void> setMap(String key, Map<String, dynamic> value) async {
          await _box.put(
              key, json.encode(value)); // 使用 Hive 存儲 Map 類型的數據,將 Map 轉為 json 字符串存儲
        }
      
        /// 根據 key 獲取 Map 類型
        static Map<String, dynamic> getMap(String key) {
          String jsonStr = _box.get(key, defaultValue: ""); // 使用 Hive 獲取存儲的 json 字符串
          return jsonStr.isEmpty
              ? {}
              : json.decode(jsonStr); // 將 json 字符串解碼為 Map 對象,如果 json 為空則返回空 Map 對象
        }
      }

       初始化

        WidgetsFlutterBinding.ensureInitialized();  //是 Flutter 中一個重要的函數,它確保 Flutter 框架在執行任何其他代碼之前已完成初始化
        // 初始化 Hive 并設置存儲路徑
        await Hive.initFlutter();
        // 打開默認的 Box
        await HiveUtil.getInstance('myBox');
      
        // await HiveUtil.setInt("INT",13141);
        runApp(const MyApp());
      }

       

      posted on 2024-07-24 11:05  鯉斌  閱讀(1104)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 99久久婷婷国产综合精品青草漫画| 精品无码成人久久久久久| 久久天天躁狠狠躁夜夜躁2o2o | 久久亚洲国产精品久久| 中文字幕精品无码一区二区| 欧美另类图区清纯亚洲| 新蔡县| 日韩V欧美V中文在线| 国产视色精品亚洲一区二区| 亚洲综合天堂一区二区三区| 国产午夜精品无码一区二区| 护士张开腿被奷日出白浆| 成年女人免费视频播放体验区| 国产久爱免费精品视频| 99久久99这里只有免费费精品| 天天爱天天做天天爽夜夜揉 | 久久久久久亚洲精品a片成人| 绥中县| 99精品国产综合久久久久五月天| 116美女极品a级毛片| 亚洲 欧美 清纯 校园 另类| 国产涩涩视频在线观看| 欧美成人午夜在线观看视频| 久久久天堂国产精品女人| 国产桃色在线成免费视频| 国产片AV国语在线观看手机版| 柠檬福利第一导航在线| 中文字幕一区二区三区久久蜜桃 | 亚洲天堂精品一区二区| 九九热免费在线视频观看| 強壮公弄得我次次高潮A片| 欧美成人影院亚洲综合图| 日本无遮挡真人祼交视频| 日本中文字幕有码在线视频| 无码任你躁久久久久久老妇 | 亚洲综合一区二区三区视频 | 中文字幕日韩精品东京热| 国产成人免费| 国产成人精品无码播放| 国产一区二区在线激情往| 国产成人a∨激情视频厨房|