日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS分布式數(shù)據(jù)服務開發(fā)指導

場景介紹

分布式數(shù)據(jù)服務主要實現(xiàn)對用戶設備中應用程序的數(shù)據(jù)內(nèi)容的分布式同步。當設備 1 上的應用 A 在分布式數(shù)據(jù)庫中增、刪、改數(shù)據(jù)后,設備2上的應用 A 也可以獲取到該數(shù)據(jù)庫變化??稍诜植际綀D庫、信息、通訊錄、文件管理器等場景中使用。

接口說明

HarmonyOS 系統(tǒng)中的分布式數(shù)據(jù)服務模塊為開發(fā)者提供下面幾種功能:

功能分類 接口名稱 描述
分布式數(shù)據(jù)庫創(chuàng)建、打開、關閉和刪除。isCreateIfMissing()數(shù)據(jù)庫不存在時是否創(chuàng)建。
setCreateIfMissing(boolean isCreateIfMissing)數(shù)據(jù)庫不存在時是否創(chuàng)建。
isEncrypt()獲取數(shù)據(jù)庫是否加密。
setEncrypt(boolean isEncrypt)設置數(shù)據(jù)庫是否加密。
getStoreType()獲取分布式數(shù)據(jù)庫的類型。
setStoreType(KvStoreType storeType)設置分布式數(shù)據(jù)庫的類型。
KvStoreType.DEVICE_COLLABORATION設備協(xié)同分布式數(shù)據(jù)庫類型。
KvStoreType.SINGLE_VERSION單版本分布式數(shù)據(jù)庫類型。
getKvStore(Options options, String storeId)根據(jù)Options配置創(chuàng)建和打開標識符為 storeId 的分布式數(shù)據(jù)庫。
closeKvStore(KvStore kvStore)關閉分布式數(shù)據(jù)庫。
deleteKvStore(String storeId)刪除分布式數(shù)據(jù)庫。
分布式數(shù)據(jù)增、刪、改、查。getStoreId()根據(jù)配置構造帳號鍵值數(shù)據(jù)庫管理類實例。
putBoolean(String key, boolean value)putInt(String key, int value)putFloat(String key, float value)putDouble(String key, double value)putString(String key, String value)putByteArray(String key, byte[] value)putBatch(List entries)插入和更新數(shù)據(jù)。
delete(String key)deleteBatch(List keys)刪除數(shù)據(jù)。
getInt(String key)getFloat(String key)getDouble(String key)getString(String key)getByteArray(String key)getEntries(String keyPrefix)查詢數(shù)據(jù)。
分布式數(shù)據(jù)謂詞查詢。select()reset()equalTo(String field, int value)equalTo(String field, long value)equalTo(String field, double value)equalTo(String field, String value)equalTo(String field, boolean value)notEqualTo(String field, int value)notEqualTog(String field, long value)notEqualTo(String field, boolean value)notEqualTo(String field, String value)notEqualTo(String field, double value)greaterThan(String field, int value)greaterThan(String field, long value)greaterThan(String field, double value)greaterThan(String field, String value)lessThan(String field, int value)lessThan(String field, long value)lessThan(String field, double value)lessThan(String field, String value)greaterThanOrEqualTo(String field, int value)greaterThanOrEqualTo(String field, long value)greaterThanOrEqualTo(String field, double value)greaterThanOrEqualTo(String field, String value)lessThanOrEqualTo(String field, int value)lessThanOrEqualTo(String field, long value)lessThanOrEqualTo(String field, double value)lessThanOrEqualTo(String field, String value)isNull(String field)orderByDesc(String field)orderByAsc(String field)limit(int number, int offset)like(String field, String value)unlike(String field, String value)inInt(String field, List valueList)inLong(String field, List valueList)inDouble(String field, List valueList)inString(String field, List valueList)notInInt(String field, List valueList)notInLong(String field, List valueList)notInDouble(String field, List valueList)notInString(String field, List valueList)and()or()對于Schema數(shù)據(jù)庫謂詞查詢數(shù)據(jù)。
訂閱分布式數(shù)據(jù)變化。subscribe(SubscribeType subscribeType, KvStoreObserver observer)訂閱數(shù)據(jù)庫中數(shù)據(jù)的變化。
分布式數(shù)據(jù)同步。sync(List deviceIdList, SyncMode mode)在手動模式下,觸發(fā)數(shù)據(jù)庫同步。

開發(fā)步驟

以單版本分布式數(shù)據(jù)庫為例,說明開發(fā)步驟。

  1. 根據(jù)配置構造分布式數(shù)據(jù)庫管理類實例。
  1. 根據(jù)應用上下文創(chuàng)建 KvManagerConfig 對象。
  2. 創(chuàng)建分布式數(shù)據(jù)庫管理器實例。

以下為創(chuàng)建分布式數(shù)據(jù)庫管理器的代碼示例:

   Context context;
   ...
   KvManagerConfig config = new KvManagerConfig(context);
   KvManager kvManager = KvManagerFactory.getInstance().createKvManager(config);

  1. 獲取/創(chuàng)建單版本分布式數(shù)據(jù)庫。
  1. 聲明需要創(chuàng)建的單版本分布式數(shù)據(jù)庫 ID 描述。
  2. 創(chuàng)建單版本分布式數(shù)據(jù)庫。

以下為創(chuàng)建單版本分布式數(shù)據(jù)庫的代碼示例:

   Options CREATE = new Options();

    
   CREATE.setCreateIfMissing(true).setEncrypt(false).setKvStoreType(KvStoreType.SINGLE_VERSION);
   String storeID = "testApp";
   SingleKvStore singleKvStore = kvManager.getKvStore(CREATE, storeID);

  1. 訂閱分布式數(shù)據(jù)變化。

\1. 客戶端需要實現(xiàn)KvStoreObserver接口。

\2. 構造并注冊KvStoreObserver實例。

以下為訂閱單版本分布式數(shù)據(jù)庫所有(本地及遠端)數(shù)據(jù)變化通知的代碼示例:

   class KvStoreObserverClient implements KvStoreObserver() {
       @Override
       public void onChange(ChangeNotification notification) {
           List insertEntries = notification.getInsertEntries();
           List updateEntries = notification.getUpdateEntries();
           List deleteEntries = notification.getDeleteEntries();
       }
   }

    
   KvStoreObserver kvStoreObserverClient = new KvStoreObserverClient();
   singleKvStore.subscribe(SubscribeType.SUBSCRIBE_TYPE_ALL, kvStoreObserverClient);

  1. 將數(shù)據(jù)寫入單版本分布式數(shù)據(jù)庫。
  1. 構造需要寫入單版本分布式數(shù)據(jù)庫的 Key (鍵)和 Value (值)。
  2. 將鍵值數(shù)據(jù)寫入單版本分布式數(shù)據(jù)庫。

以下為將字符串類型鍵值數(shù)據(jù)寫入單版本分布式數(shù)據(jù)庫的代碼示例:

   String key = "todayWeather";
   String value = "Sunny";
   singleKvStore.putString(key, value);

  1. 查詢單版本分布式數(shù)據(jù)庫數(shù)據(jù)。
  1. 構造需要從單版本分布式數(shù)據(jù)庫快照中查詢的 Key(鍵)。
  2. 從單版本分布式數(shù)據(jù)庫快照中獲取數(shù)據(jù)。

以下為從單版本分布式數(shù)據(jù)庫中查詢字符串類型數(shù)據(jù)的代碼示例:

   String key = "todayWeather";String value = singleKvStore.getString(key);

  1. 同步數(shù)據(jù)到其他設備。

\1. 獲取已連接的設備列表。

\2. 選擇同步方式進行數(shù)據(jù)同步。

以下為單版本分布式數(shù)據(jù)庫進行數(shù)據(jù)同步的代碼示例,其中同步方式為 PUSH_ONLY:

   List deviceInfoList = kvManager.getConnectedDevicesInfo(DeviceFilterStrategy.NO_FILTER);
   List deviceIdList = new ArrayList<>();
   for (DeviceInfo deviceInfo : deviceInfoList) {
       deviceIdList.add(deviceInfo.getId());
   }
   singleKvStore.sync(deviceIdList, SyncMode.PUSH_ONLY);

  1. 關閉單版本分布式數(shù)據(jù)庫。以下為關閉單版本分布式數(shù)據(jù)庫的代碼示例:
   kvManager.closeKvStore(singleKvStore);

  1. 刪除單版本分布式數(shù)據(jù)庫。以下為刪除單版本分布式數(shù)據(jù)庫的代碼示例:
   kvManager.deleteKvStore(storeID);

本文題目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS分布式數(shù)據(jù)服務開發(fā)指導
轉載注明:http://m.5511xx.com/article/cdjjcos.html