精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙開發接口數據管理:【@ohos.data.distributedData (分布式數據管理)】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-07 09:30 ? 次閱讀

分布式數據管理

分布式數據管理為應用程序提供不同設備間數據庫的分布式協同能力。通過調用分布式數據各個接口,應用程序可將數據保存到分布式數據庫中,并可對分布式數據庫中的數據進行增加、刪除、修改、查詢、同步等操作。

該模塊提供以下分布式數據管理相關的常用功能:

  • [KVManager]:數據管理實例,用于獲取KVStore的相關信息
  • [KvStoreResultSet8+]:提供獲取KVStore數據庫結果集的相關方法,包括查詢和移動數據讀取位置等。
  • [Query8+]:使用謂詞表示數據庫查詢,提供創建Query實例、查詢數據庫中的數據和添加謂詞的方法。
  • [KVStore]:KVStore數據庫實例,提供增加數據、刪除數據和訂閱數據變更、訂閱數據同步完成的方法。
  • [SingleKVStore]:單版本分布式數據庫,繼承自[KVStore],不對數據所屬設備進行區分,提供查詢數據和同步數據的方法。
  • [DeviceKVStore8+]:設備協同數據庫,繼承自[KVStore],以設備維度對數據進行區分,提供查詢數據和同步數據的方法。

說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
本模塊首批接口從API version 7開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。

導入模塊

import distributedData from '@ohos.data.distributedData';

distributedData.createKVManager

createKVManager(config: KVManagerConfig, callback: AsyncCallback): void

創建一個KVManager對象實例,用于管理數據庫對象,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數

參數名參數類型必填說明
config[KVManagerConfig]提供KVManager實例的配置信息,包括調用方的包名和用戶信息。
callbackAsyncCallback<[KVManager]>回調函數。返回創建的KVManager對象實例。

示例:

let kvManager;
try {
    const kvManagerConfig = {
        bundleName : 'com.example.datamanagertest',
        userInfo : {
            userId : '0',
            userType : distributedData.UserType.SAME_USER_ID
        }
    }
    distributedData.createKVManager(kvManagerConfig, function (err, manager) {
        if (err) {
            console.log("createKVManager err: "  + JSON.stringify(err));
            return;
        }
        console.log("createKVManager success");
        kvManager = manager;
    });
} catch (e) {
    console.log("An unexpected error occurred. Error:" + e);
}

distributedData.createKVManager

createKVManager(config: KVManagerConfig): Promise

創建一個KVManager對象實例,用于管理數據庫對象,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
config[KVManagerConfig]提供KVManager實例的配置信息,包括調用方的包名和用戶信息。

返回值:

類型說明
Promise<[KVManager]>Promise對象。返回創建的KVManager對象實例。

示例:

let kvManager;
try {
    const kvManagerConfig = {
        bundleName : 'com.example.datamanagertest',
        userInfo : {
            userId : '0',
            userType : distributedData.UserType.SAME_USER_ID
        }
    }
    distributedData.createKVManager(kvManagerConfig).then((manager) = > {
        console.log("createKVManager success");
        kvManager = manager;
    }).catch((err) = > {
        console.log("createKVManager err: "  + JSON.stringify(err));
    });
} catch (e) {
    console.log("An unexpected error occurred. Error:" + e);
}

KVManagerConfig

提供KVManager實例的配置信息,包括調用方的包名和用戶信息。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數名參數類型必填說明
userInfo[UserInfo]調用方的用戶信息。
bundleNamestring調用方的包名。

UserInfo

用戶信息。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

名稱參數類型必填說明
userIdstring指示要設置的用戶ID。
userType[UserType]指示要設置的用戶類型。

UserType

用戶類型枚舉。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

名稱說明
SAME_USER_ID0使用同一帳戶登錄不同設備的用戶。

KVManager

數據管理實例,用于獲取KVStore的相關信息。在調用KVManager的方法前,需要先通過[createKVManager]構建一個KVManager實例。

getKVStore

getKVStore(storeId: string, options: Options, callback: AsyncCallback): void

通過指定Options和storeId,創建并獲取KVStore數據庫,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
storeIdstring數據庫唯一標識符,長度不大于[MAX_STORE_ID_LENGTH]。
options[Options]創建KVStore實例的配置信息。
callbackAsyncCallback,回調函數。返回創建的KVStore數據庫實例。

示例:

let kvStore;
let kvManager;
try {
    const options = {
        createIfMissing : true,
        encrypt : false,
        backup : false,
        autoSync : true,
        kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
        securityLevel : distributedData.SecurityLevel.S2,
    };
    kvManager.getKVStore('storeId', options, function (err, store) {
        if (err) {
            console.log("getKVStore err: "  + JSON.stringify(err));
            return;
        }
        console.log("getKVStore success");
        kvStore = store;
    });
} catch (e) {
    console.log("An unexpected error occurred. Error:" + e);
}

getKVStore

getKVStore(storeId: string, options: Options): Promise

通過指定Options和storeId,創建并獲取KVStore數據庫,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
storeIdstring數據庫唯一標識符,長度不大于[MAX_STORE_ID_LENGTH]。
options[Options]創建KVStore實例的配置信息。

返回值:

類型說明
Promise ,Promise對象。返回創建的KVStore數據庫實例。

示例:

let kvStore;
let kvManager;
try {
    const options = {
        createIfMissing : true,
        encrypt : false,
        backup : false,
        autoSync : true,
        kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
        securityLevel : distributedData.SecurityLevel.S2,
    };
    kvManager.getKVStore('storeId', options).then((store) = > {
        console.log("getKVStore success");
        kvStore = store;
    }).catch((err) = > {
        console.log("getKVStore err: "  + JSON.stringify(err));
    });
} catch (e) {
    console.log("An unexpected error occurred. Error:" + e);
}

closeKVStore8+

closeKVStore(appId: string, storeId: string, kvStore: KVStore, callback: AsyncCallback): void

通過storeId的值關閉指定的KVStore數據庫,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
appIdstring所調用數據庫方的包名。
storeIdstring要關閉的數據庫唯一標識符,長度不大于[MAX_STORE_ID_LENGTH]。
kvStore[KVStore]要關閉的KVStore數據庫。
callbackAsyncCallback回調函數。

示例:

let kvStore;
let kvManager;
const options = {
    createIfMissing : true,
    encrypt : false,
    backup : false,
    autoSync : true,
    kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
    schema : '',
    securityLevel : distributedData.SecurityLevel.S2,
 }
 try {
    kvManager.getKVStore('storeId', options, async function (err, store) {
    console.log('getKVStore success');
    kvStore = store;
    kvManager.closeKVStore('appId', 'storeId', kvStore, function (err, data) {
        console.log('closeKVStore success');
    });
    });
} catch (e) {
    console.log('closeKVStore e ' + e);
}

closeKVStore8+

closeKVStore(appId: string, storeId: string, kvStore: KVStore): Promise

通過storeId的值關閉指定的KVStore數據庫,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
appIdstring所調用數據庫方的包名。
storeIdstring要關閉的數據庫唯一標識符,長度不大于[MAX_STORE_ID_LENGTH]。
kvStore[KVStore]要關閉的KVStore數據庫。

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvManager;
let kvStore;
const options = {
    createIfMissing : true,
    encrypt : false,
    backup : false,
    autoSync : true,
    kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
    schema : '',
    securityLevel : distributedData.SecurityLevel.S2,
}
 try {
    kvManager.getKVStore('storeId', options).then(async (store) = > {
    console.log('getKVStore success');
    kvStore = store;
    kvManager.closeKVStore('appId', 'storeId', kvStore).then(() = > {
        console.log('closeKVStore success');
    }).catch((err) = > {
        console.log('closeKVStore err ' + JSON.stringify(err));
    });
    }).catch((err) = > {
        console.log('CloseKVStore getKVStore err ' + JSON.stringify(err));
    });
 } catch (e) {
    console.log('closeKVStore e ' + e);
}

deleteKVStore8+

deleteKVStore(appId: string, storeId: string, callback: AsyncCallback): void

通過storeId的值刪除指定的KVStore數據庫,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
appIdstring所調用數據庫方的包名。
storeIdstring要刪除的數據庫唯一標識符,長度不大于[MAX_STORE_ID_LENGTH]。
callbackAsyncCallback回調函數。

示例:

let kvManager;
let kvStore;
const options = {
    createIfMissing : true,
    encrypt : false,
    backup : false,
    autoSync : true,
    kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
    schema : '',
    securityLevel : distributedData.SecurityLevel.S2,
}
try {
    kvManager.getKVStore('store', options, async function (err, store) {
        console.log('getKVStore success');
        kvStore = store;
        kvManager.deleteKVStore('appId', 'storeId', function (err, data) {
            console.log('deleteKVStore success');
        });
    });
} catch (e) {
    console.log('DeleteKVStore e ' + e);
}

deleteKVStore8+

deleteKVStore(appId: string, storeId: string): Promise

通過storeId的值刪除指定的KVStore數據庫,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
appIdstring所調用數據庫方的包名。
storeIdstring要刪除的數據庫唯一標識符,長度不大于[MAX_STORE_ID_LENGTH]。

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvManager;
let kvStore;
const options = {
    createIfMissing : true,
    encrypt : false,
    backup : false,
    autoSync : true,
    kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
    schema : '',
    securityLevel : distributedData.SecurityLevel.S2,
}
try {
    kvManager.getKVStore('storeId', options).then(async (store) = > {
        console.log('getKVStore success');
        kvStore = store;
        kvManager.deleteKVStore('appId', 'storeId').then(() = > {
            console.log('deleteKVStore success');
        }).catch((err) = > {
            console.log('deleteKVStore err ' + JSON.stringify(err));
        });
    }).catch((err) = > {
        console.log('getKVStore err ' + JSON.stringify(err));
    });
} catch (e) {
    console.log('deleteKVStore e ' + e);
}

getAllKVStoreId8+

getAllKVStoreId(appId: string, callback: AsyncCallback): void

獲取所有通過[getKVStore]方法創建的且沒有調用[deleteKVStore]方法刪除的KVStore數據庫的storeId,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
appIdstring所調用數據庫方的包名。
callbackAsyncCallback回調函數。返回所有創建的KvStore數據庫的storeId。

示例:

let kvManager;
try {
    kvManager.getAllKVStoreId('appId', function (err, data) {
        console.log('GetAllKVStoreId success');
        console.log('GetAllKVStoreId size = ' + data.length);
    });
} catch (e) {
    console.log('GetAllKVStoreId e ' + e);
}

getAllKVStoreId8+

getAllKVStoreId(appId: string): Promise

獲取所有通過[getKVStore]方法創建的且沒有調用[deleteKVStore]方法刪除的KVStore數據庫的storeId,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
appIdstring所調用數據庫方的包名。

返回值:

類型說明
PromisePromise對象。返回所有創建的KvStore數據庫的storeId。

示例:

let kvManager;
try {
    console.log('GetAllKVStoreId');
    kvManager.getAllKVStoreId('appId').then((data) = > {
        console.log('getAllKVStoreId success');
        console.log('size = ' + data.length);
    }).catch((err) = > {
        console.log('getAllKVStoreId err ' + JSON.stringify(err));
    });
} catch(e) {
    console.log('getAllKVStoreId e ' + e);
}

on('distributedDataServiceDie')8+

on(event: 'distributedDataServiceDie', deathCallback: Callback): void

訂閱服務狀態變更通知。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore。

參數:

參數名參數類型必填說明
eventstring訂閱的事件名,固定為'distributedDataServiceDie',即服務狀態變更事件。
deathCallbackCallback回調函數。

示例:

let kvManager;
try {
    
    console.log('KVManagerOn');
    const deathCallback = function () {
        console.log('death callback call');
    }
    kvManager.on('distributedDataServiceDie', deathCallback);
} catch (e) {
    console.log("An unexpected error occurred. Error:" + e);
}

off('distributedDataServiceDie')8+

off(event: 'distributedDataServiceDie', deathCallback?: Callback): void

取消訂閱服務狀態變更通知。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore。

參數:

參數名參數類型必填說明
eventstring取消訂閱的事件名,固定為'distributedDataServiceDie',即服務狀態變更事件。
deathCallbackCallback回調函數。

示例:

let kvManager;
try {
    console.log('KVManagerOff');
    const deathCallback = function () {
        console.log('death callback call');
    }
    kvManager.off('distributedDataServiceDie', deathCallback);
} catch (e) {
    console.log("An unexpected error occurred. Error:" + e);
}

Options

用于提供創建數據庫的配置信息。

參數名參數類型必填說明
createIfMissingboolean當數據庫文件不存在時是否創建數據庫,默認創建。**系統能力:**SystemCapability.DistributedDataManager.KVStore.Core
encryptboolean設置數據庫文件是否加密,默認不加密。**系統能力:**SystemCapability.DistributedDataManager.KVStore.Core
backupboolean設置數據庫文件是否備份,默認備份。**系統能力:**SystemCapability.DistributedDataManager.KVStore.Core
autoSyncboolean設置數據庫文件是否自動同步,默認不自動同步。**系統能力:**SystemCapability.DistributedDataManager.KVStore.Core 需要權限 : ohos.permission.DISTRIBUTED_DATASYNC
kvStoreType[KVStoreType]設置要創建的數據庫類型,默認為多設備協同數據庫。**系統能力:**SystemCapability.DistributedDataManager.KVStore.Core
securityLevel[SecurityLevel]設置數據庫安全級別,默認不設置安全級別。**系統能力:**SystemCapability.DistributedDataManager.KVStore.Core
schema8+[Schema]設置定義存儲在數據庫中的值。**系統能力:**SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

KVStoreType

KVStore數據庫類型枚舉。

名稱說明
DEVICE_COLLABORATION0表示多設備協同數據庫。**系統能力:**SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
SINGLE_VERSION1表示單版本數據庫。**系統能力:**SystemCapability.DistributedDataManager.KVStore.Core
MULTI_VERSION2表示多版本數據庫。此類型當前不允許使用。**系統能力:**SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

SecurityLevel

數據庫的安全級別枚舉。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

名稱說明
NO_LEVEL0表示數據庫不設置安全級別。
S01表示數據庫的安全級別為公共級別。
S12表示數據庫的安全級別為低級別,當數據泄露時會產生較低影響。例如,包含壁紙等系統數據的數據庫。
S23表示數據庫的安全級別為中級別,當數據泄露時會產生較大影響。例如,包含錄音、視頻等用戶生成數據或通話記錄等信息的數據庫。
S35表示數據庫的安全級別為高級別,當數據泄露時會產生重大影響。例如,包含用戶運動、健康、位置等信息的數據庫。
S46表示數據庫的安全級別為關鍵級別,當數據泄露時會產生嚴重影響。例如,包含認證憑據、財務數據等信息的數據庫。

Constants

KVStore常量。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

名稱說明
MAX_KEY_LENGTH1024數據庫中Key允許的最大長度,單位字節。
MAX_VALUE_LENGTH4194303數據庫中Value允許的最大長度,單位字節。
MAX_KEY_LENGTH_DEVICE896最大設備密鑰長度,單位字節。
MAX_STORE_ID_LENGTH128數據庫標識符允許的最大長度,單位字節。
MAX_QUERY_LENGTH512000最大查詢長度,單位字節。
MAX_BATCH_SIZE128最大批處理操作數量。

Schema8+

表示數據庫模式,可以在創建或打開數據庫時創建Schema對象并將它們放入[Options]中。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore。

名稱類型說明
root8+[FieldNode]表示json根對象。
indexes8+Array表示json類型的字符串數組。
mode8+number表示Schema的模式。
skip8+numberSchema的跳躍大小。

constructor8+

constructor()

用于創建Schema實例的構造函數。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore。

FieldNode8+

表示 Schema 實例的節點,提供定義存儲在數據庫中的值的方法。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore。

名稱類型說明
nullable8+boolean表示數據庫字段是否可以為空。
default8+string表示Fieldnode的默認值。
type8+number表示指定節點對應數據類型的值。

constructor8+

constructor(name: string)

用于創建帶有string字段FieldNode實例的構造函數。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore。

參數:

參數名參數類型必填說明
namestringFieldNode的值。

appendChild8+

appendChild(child: FieldNode): boolean

在當前 FieldNode 中添加一個子節點。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore。

參數:

參數名參數類型必填說明
child[FieldNode]要附加的域節點。

返回值:

類型說明
boolean返回true表示子節點成功添加到FieldNode;返回false則表示操作失敗。

示例:

import ddm from '@ohos.data.distributedData';
try {
    let node = new ddm.FieldNode("root");
    let child1 = new ddm.FieldNode("child1");
    let child2 = new ddm.FieldNode("child2");
    let child3 = new ddm.FieldNode("child3");
    node.appendChild(child1);
    node.appendChild(child2);
    node.appendChild(child3);
    console.log("appendNode " + JSON.stringify(node));
    child1 = null;
    child2 = null;
    child3 = null;
    node = null;
} catch (e) {
    console.log("AppendChild " + e);
}

KvStoreResultSet8+

提供獲取KVStore數據庫結果集的相關方法,包括查詢和移動數據讀取位置等。

在調用KvStoreResultSet的方法前,需要先通過[getKVStore])構建一個KVStore實例。

getCount8+

getCount(): number

獲取結果集中的總行數。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
number返回數據的總行數。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('batch_test_string_key').then((result) = > {
        console.log('getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + err);
    });
    const count = resultSet.getCount();
    console.log("getCount succeed:" + count);
} catch (e) {
    console.log("getCount failed: " + e);
}

getPosition8+

getPosition(): number

獲取結果集中當前的讀取位置。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
number返回當前讀取位置。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('batch_test_string_key').then((result) = > {
        console.log('getResultSet succeeded.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + err);
    });
    const position = resultSet.getPosition();
    console.log("getPosition succeed:" + position);
} catch (e) {
    console.log("getPosition failed: " + e);
}

moveToFirst8+

moveToFirst(): boolean

將讀取位置移動到第一行。如果結果集為空,則返回false。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
boolean返回true表示操作成功;返回false則表示操作失敗。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('batch_test_string_key').then((result) = > {
        console.log('getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + err);
    });
    const moved1 = resultSet.moveToFirst();
    console.log("moveToFirst succeed: " + moved1);
} catch (e) {
    console.log("moveToFirst failed " + e);
}

moveToLast8+

moveToLast(): boolean

將讀取位置移動到最后一行。如果結果集為空,則返回false。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
boolean返回true表示操作成功;返回false則表示操作失敗。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('batch_test_string_key').then((result) = > {
        console.log('getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + err);
    });
    const moved2 = resultSet.moveToLast();
    console.log("moveToLast succeed:" + moved2);
} catch (e) {
    console.log("moveToLast failed: " + e);
}

moveToNext8+

moveToNext(): boolean

將讀取位置移動到下一行。如果結果集為空,則返回false。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
boolean返回true表示操作成功;返回false則表示操作失敗。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('batch_test_string_key').then((result) = > {
        console.log('getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + err);
    });
    const moved3 = resultSet.moveToNext();
    console.log("moveToNext succeed: " + moved3);
} catch (e) {
    console.log("moveToNext failed: " + e);
}

moveToPrevious8+

moveToPrevious(): boolean

將讀取位置移動到上一行。如果結果集為空,則返回false。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
boolean返回true表示操作成功;返回false則表示操作失敗。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('batch_test_string_key').then((result) = > {
        console.log('getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + err);
    });
    const moved4 = resultSet.moveToPrevious();
    console.log("moveToPrevious succeed:" + moved4);
} catch (e) {
    console.log("moveToPrevious failed: " + e);
}

move8+

move(offset: number): boolean

將讀取位置移動到當前位置的相對偏移量。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
offsetnumber表示與當前位置的相對偏移量,負偏移表示向后移動,正偏移表示向前移動。

返回值:

類型說明
boolean返回true表示操作成功;返回false則表示操作失敗。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('batch_test_string_key').then((result) = > {
        console.log('getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + err);
    });
    const moved5 = resultSet.move();
    console.log("move succeed:" + moved5);
} catch (e) {
    console.log("move failed: " + e);
}

moveToPosition8+

moveToPosition(position: number): boolean

將讀取位置從 0 移動到絕對位置。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
positionnumber表示絕對位置。

返回值:

類型說明
boolean返回true表示操作成功;返回false則表示操作失敗。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('batch_test_string_key').then((result) = > {
        console.log('getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + err);
    });
    const moved6 = resultSet.moveToPosition();
    console.log("moveToPosition succeed: " + moved6);
} catch (e) {
    console.log("moveToPosition failed: " + e);
}

isFirst8+

isFirst(): boolean

檢查讀取位置是否為第一行。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
boolean返回true表示讀取位置為第一行;返回false表示讀取位置不是第一行。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('batch_test_string_key').then((result) = > {
        console.log('getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + err);
    });
    const isfirst = resultSet.isFirst();
    console.log("Check isFirst succeed:" + isfirst);
} catch (e) {
    console.log("Check isFirst failed: " + e);
}

isLast8+

isLast(): boolean

檢查讀取位置是否為最后一行。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
boolean返回true表示讀取位置為最后一行;返回false表示讀取位置不是最后一行。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('batch_test_string_key').then((result) = > {
        console.log('getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + err);
    });
    const islast = resultSet.isLast();
    console.log("Check isLast succeed: " + islast);
} catch (e) {
    console.log("Check isLast failed: " + e);
}

isBeforeFirst8+

isBeforeFirst(): boolean

檢查讀取位置是否在第一行之前。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
boolean返回true表示讀取位置在第一行之前;返回false表示讀取位置不在第一行之前。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('batch_test_string_key').then((result) = > {
        console.log('getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + err);
    });
    const isbeforefirst = resultSet.isBeforeFirst();
    console.log("Check isBeforeFirst succeed: " + isbeforefirst);
} catch (e) {
    console.log("Check isBeforeFirst failed: " + e);
}

isAfterLast8+

isAfterLast(): boolean

檢查讀取位置是否在最后一行之后。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
boolean返回true表示讀取位置在最后一行之后;返回false表示讀取位置不在最后一行之后。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('batch_test_string_key').then((result) = > {
        console.log('getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + err);
    });
    const isafterlast = resultSet.isAfterLast();
    console.log("Check isAfterLast succeed:" + isafterlast);
} catch (e) {
    console.log("Check isAfterLast failed: " + e);
}

getEntry8+

getEntry(): Entry

從當前位置獲取對應的鍵值對。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
[Entry]返回鍵值對。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('batch_test_string_key').then((result) = > {
        console.log('getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + err);
    });
    const entry  = resultSet.getEntry();
    console.log("getEntry succeed:" + JSON.stringify(entry));
} catch (e) {
    console.log("getEntry failed: " + e);
}

Query8+

使用謂詞表示數據庫查詢,提供創建Query實例、查詢數據庫中的數據和添加謂詞的方法。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

constructor8+

constructor()

用于創建Schema實例的構造函數。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

reset8+

reset(): Query

重置Query對象。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
[Query]返回重置的Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.equalTo("key", "value");
    console.log("query is " + query.getSqlLike());
    query.reset();
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("simply calls should be ok :" + e);
}

equalTo8+

equalTo(field: string, value: number|string|boolean): Query

構造一個Query對象來查詢具有指定字段的條目,其值等于指定的值。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。
valuenumberstringboolean

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.equalTo("field", "value");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

notEqualTo8+

notEqualTo(field: string, value: number|string|boolean): Query

構造一個Query對象以查詢具有指定字段且值不等于指定值的條目。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。
valuenumberstringboolean

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.notEqualTo("field", "value");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

greaterThan8+

greaterThan(field: string, value: number|string|boolean): Query

構造一個Query對象以查詢具有大于指定值的指定字段的條目。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。
valuenumberstringboolean

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.greaterThan("field", "value");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

lessThan8+

lessThan(field: string, value: number|string): Query

構造一個Query對象以查詢具有小于指定值的指定字段的條目。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。
valuenumberstringboolean

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.lessThan("field", "value");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

greaterThanOrEqualTo8+

greaterThanOrEqualTo(field: string, value: number|string): Query

構造一個Query對象以查詢具有指定字段且值大于或等于指定值的條目。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。
valuenumberstringboolean

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.greaterThanOrEqualTo("field", "value");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta1/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md#lessthanorequalto8)lessThanOrEqualTo8+

lessThanOrEqualTo(field: string, value: number|string): Query

構造一個Query對象以查詢具有指定字段且值小于或等于指定值的條目。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。
valuenumberstringboolean

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.lessThanOrEqualTo("field", "value");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

isNull8+

isNull(field: string): Query

構造一個Query對象以查詢具有值為null的指定字段的條目。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.isNull("field");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

inNumber8+

inNumber(field: string, valueList: number[]): Query

構造一個Query對象以查詢具有指定字段的條目,其值在指定的值列表中。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。
valueListnumber[]表示指定的值列表。

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.inNumber("field", [0, 1]);
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

inString8+

inString(field: string, valueList: string[]): Query

構造一個Query對象以查詢具有指定字段的條目,其值在指定的字符串值列表中。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。
valueListstring[]表示指定的字符串值列表。

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.inString("field", ['test1', 'test2']);
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

notInNumber8+

notInNumber(field: string, valueList: number[]): Query

構造一個Query對象以查詢具有指定字段的條目,該字段的值不在指定的值列表中。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。
valueListnumber[]表示指定的值列表。

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.notInNumber("field", [0, 1]);
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

notInString8+

notInString(field: string, valueList: string[]): Query

構造一個Query對象以查詢具有指定字段且值不在指定字符串值列表中的條目。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。
valueListstring[]表示指定的字符串值列表。

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.notInString("field", ['test1', 'test2']);
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

like8+

like(field: string, value: string): Query

構造一個Query對象以查詢具有與指定字符串值相似的指定字段的條目。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。
valuestring表示指定的字符串值。

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.like("field", "value");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

unlike8+

unlike(field: string, value: string): Query

構造一個Query對象以查詢具有與指定字符串值不相似的指定字段的條目。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。
valuestring表示指定的字符串值。

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.unlike("field", "value");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

and8+

and(): Query

構造一個帶有與條件的查詢對象。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
[Query]返回查詢對象。

示例:

try {
    let query = new distributedData.Query();
    query.notEqualTo("field", "value1");
    query.and();
    query.notEqualTo("field", "value2");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

or8+

or(): Query

構造一個帶有或條件的Query對象。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
[Query]返回查詢對象。

示例:

try {
    let query = new distributedData.Query();
    query.notEqualTo("field", "value1");
    query.or();
    query.notEqualTo("field", "value2");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

orderByAsc8+

orderByAsc(field: string): Query

構造一個Query對象,將查詢結果按升序排序。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.notEqualTo("field", "value");
    query.orderByAsc("field");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

orderByDesc8+

orderByDesc(field: string): Query

構造一個Query對象,將查詢結果按降序排序。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.notEqualTo("field", "value");
    query.orderByDesc("field");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta1/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md#limit8)limit8+

limit(total: number, offset: number): Query

構造一個Query對象來指定結果的數量和開始位置。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
totalnumber表示指定的結果數。
offsetnumber表示起始位置。

返回值:

類型說明
[Query]返回Query對象。

示例:

let total = 10;
let offset = 1;
try {
    let query = new distributedData.Query();
    query.notEqualTo("field", "value");
    query.limit(total, offset);
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

isNotNull8+

isNotNull(field: string): Query

構造一個Query對象以查詢具有值不為null的指定字段的條目。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
fieIdstring表示指定字段,不能包含' ^ '。

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.isNotNull("field");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

beginGroup8+

beginGroup(): Query

創建一個帶有左括號的查詢條件組。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.beginGroup();
    query.isNotNull("field");
    query.endGroup();
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta1/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md#endgroup8)endGroup8+

endGroup(): Query

創建一個帶有右括號的查詢條件組。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.beginGroup();
    query.isNotNull("field");
    query.endGroup();
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

prefixKey8+

prefixKey(prefix: string): Query

創建具有指定鍵前綴的查詢條件。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
prefixstring表示指定的鍵前綴。

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.prefixKey("$.name");
    query.prefixKey("0");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
    console.log("duplicated calls should be ok :" + e);
}

setSuggestIndex8+

setSuggestIndex(index: string): Query

設置一個指定的索引,將優先用于查詢。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
indexstring指示要設置的索引。

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.setSuggestIndex("$.name");
    query.setSuggestIndex("0");
    console.log("query is " + query.getSqlLike());
    query = null;
} catch (e) {
   console.log("duplicated calls should be ok :" + e);
}

deviceId8+

deviceId(deviceId:string):Query

添加設備ID作為key的前綴。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
deviceIdstring指示查詢的設備ID。

返回值:

類型說明
[Query]返回Query對象。

示例:

try {
    let query = new distributedData.Query();
    query.deviceId("deviceId");
    console.log("query is " + query.getSqlLike());
} catch (e) {
    console.log("should be ok on Method Chaining : " + e);
}

getSqlLike8+

getSqlLike():string

獲取Query對象的查詢語句。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
string返回一個字段列中包含對應子串的結果。

示例:

try {
    let query = new distributedData.Query();
    let sql1 = query.getSqlLike();
    console.log("GetSqlLike sql=" + sql1);
} catch (e) {
    console.log("duplicated calls should be ok : " + e);
}

KVStore

KVStore數據庫實例,提供增加數據、刪除數據和訂閱數據變更、訂閱數據同步完成的方法。

在調用KVStore的方法前,需要先通過[getKVStore]構建一個KVStore實例。

put

put(key: string, value: Uint8Array | string | number | boolean, callback: AsyncCallback): void

添加指定類型鍵值對到數據庫,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
keystring要添加數據的key,不能為空且長度不大于[MAX_KEY_LENGTH]。
valueUint8Arraystringnumber
callbackAsyncCallback回調函數。

示例:

let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try {
    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err,data) {
        if (err != undefined) {
            console.log("put err: " + JSON.stringify(err));
            return;
        }
        console.log("put success");
    });
}catch (e) {
    console.log("An unexpected error occurred. Error:" + e);
}

put

put(key: string, value: Uint8Array | string | number | boolean): Promise

添加指定類型鍵值對到數據庫,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
keystring要添加數據的key,不能為空且長度不大于[MAX_KEY_LENGTH]。
valueUint8Arraystringnumber

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try {
    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) = > {
        console.log("put success: " + JSON.stringify(data));
    }).catch((err) = > {
        console.log("put err: " + JSON.stringify(err));
    });
}catch (e) {
    console.log("An unexpected error occurred. Error:" + e);
}

delete

delete(key: string, callback: AsyncCallback): void

從數據庫中刪除指定鍵值的數據,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
keystring要刪除數據的key,不能為空且長度不大于[MAX_KEY_LENGTH]。
callbackAsyncCallback回調函數。

示例:

let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try {
    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err,data) {
        if (err != undefined) {
            console.log("put err: " + JSON.stringify(err));
            return;
        }
        console.log("put success");
        kvStore.delete(KEY_TEST_STRING_ELEMENT, function (err,data) {
            if (err != undefined) {
                console.log("delete err: " + JSON.stringify(err));
                return;
            }
            console.log("delete success");
        });
    });
}catch (e) {
    console.log("An unexpected error occurred. Error:" + e);
}

delete

delete(key: string): Promise

從數據庫中刪除指定鍵值的數據,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
keystring要刪除數據的key,不能為空且長度不大于[MAX_KEY_LENGTH]。

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try {
    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) = > {
        console.log("put success: " + JSON.stringify(data));
        kvStore.delete(KEY_TEST_STRING_ELEMENT).then((data) = > {
            console.log("delete success");
        }).catch((err) = > {
            console.log("delete err: " + JSON.stringify(err));
        });
    }).catch((err) = > {
        console.log("put err: " + JSON.stringify(err));
    });
}catch (e) {
    console.log("An unexpected error occurred. Error:" + e);
}

on('dataChange')

on(event: 'dataChange', type: SubscribeType, observer: Callback): void

訂閱指定類型的數據變更通知。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
eventstring訂閱的事件名,固定為'dataChange',表示數據變更事件。
type[SubscribeType]表示訂閱的類型。
observerCallback<[ChangeNotification]>回調函數。

示例:

let kvStore;
kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_LOCAL, function (data) {
    console.log("dataChange callback call data: " + JSON.stringify(data));
});

on('syncComplete')

on(event: 'syncComplete', syncCallback: Callback>): void

訂閱同步完成事件回調通知。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
eventstring訂閱的事件名,固定為'syncComplete',表示同步完成事件。
syncCallbackCallback>回調函數。

示例:

let kvStore;
kvStore.on('syncComplete', function (data) {
    console.log("callback call data: " + data);
});

off('dataChange')8+

off(event:'dataChange', observer?: Callback): void

取消訂閱數據變更通知。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
eventstring取消訂閱的事件名,固定為'dataChange',表示數據變更事件。
observerCallback<[ChangeNotification]>回調函數。

示例:

let kvStore;
kvStore.on('dataChange', function (data) {
    console.log("callback call data: " + data);
});
kvStore.off('dataChange', function (data) {
    console.log("callback call data: " + data);
});

putBatch8+

putBatch(entries: Entry[], callback: AsyncCallback): void

批量插入鍵值對到KVStore數據庫中,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
entries[Entry][]表示要批量插入的鍵值對。
callbackAsyncallback回調函數。

示例:

let kvStore;
try {
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    console.log('entries: ' + JSON.stringify(entries));
    kvStore.putBatch(entries, async function (err,data) {
        console.log('putBatch success');
        kvStore.getEntries('batch_test_string_key', function (err,entries) {
            console.log('getEntries success');
            console.log('entries.length: ' + entries.length);
            console.log('entries[0]: ' + JSON.stringify(entries[0]));
        });
    });
}catch(e) {
    console.log('PutBatch e ' + JSON.stringify(e));
}

[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta1/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md#putbatch8-1)putBatch8+

putBatch(entries: Entry[]): Promise

批量插入鍵值對到KVStore數據庫中,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
entries[Entry][]表示要批量插入的鍵值對。

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvStore;
try {
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    console.log('entries: ' + JSON.stringify(entries));
    kvStore.putBatch(entries).then(async (err) = > {
        console.log('putBatch success');
        kvStore.getEntries('batch_test_string_key').then((entries) = > {
            console.log('getEntries success');
            console.log('PutBatch ' + JSON.stringify(entries));
        }).catch((err) = > {
            console.log('getEntries fail ' + JSON.stringify(err));
        });
    }).catch((err) = > {
        console.log('putBatch fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('PutBatch e ' + JSON.stringify(e));
}

deleteBatch8+

deleteBatch(keys: string[], callback: AsyncCallback): void

批量刪除KVStore數據庫中的鍵值對,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
keysstring[]表示要批量刪除的鍵值對。
callbackAsyncCallback回調函數。

示例:

let kvStore;
try {
    let entries = [];
    let keys = [];
    for (var i = 0; i < 5; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
        keys.push(key + i);
    }
    console.log('entries: ' + JSON.stringify(entries));
    kvStore.putBatch(entries, async function (err,data) {
        console.log('putBatch success');
        kvStore.deleteBatch(keys, async function (err,data) {
            console.log('deleteBatch success');
        });
    });
}catch(e) {
    console.log('DeleteBatch e ' + e);
}

deleteBatch8+

deleteBatch(keys: string[]): Promise

批量刪除KVStore數據庫中的鍵值對,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
keysstring[]表示要批量刪除的鍵值對。

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvStore;
try {
    let entries = [];
    let keys = [];
    for (var i = 0; i < 5; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
        keys.push(key + i);
    }
    console.log('entries: ' + JSON.stringify(entries));
    kvStore.putBatch(entries).then(async (err) = > {
        console.log('putBatch success');
        kvStore.deleteBatch(keys).then((err) = > {
            console.log('deleteBatch success');
        }).catch((err) = > {
            console.log('deleteBatch fail ' + JSON.stringify(err));
        });
    }).catch((err) = > {
        console.log('putBatch fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('DeleteBatch e ' + e);
}

startTransaction8+

startTransaction(callback: AsyncCallback): void

啟動KVStore數據庫中的事務,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
callbackAsyncCallback回調函數。

示例:

let kvStore;
function putBatchString(len, prefix) {
    let entries = [];
    for (var i = 0; i < len; i++) {
        var entry = {
            key : prefix + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    return entries;
}
try {
    var count = 0;
    kvStore.on('dataChange', 0, function (data) {
        console.log('startTransaction 0' + data)
        count++;
    });
    kvStore.startTransaction(async function (err,data) {
        console.log('startTransaction success');
        let entries = putBatchString(10, 'batch_test_string_key');
        console.log('entries: ' + JSON.stringify(entries));
        kvStore.putBatch(entries, async function (err,data) {
            console.log('putBatch success');
        });
    });
}catch(e) {
    console.log('startTransaction e ' + e);
}

startTransaction8+

startTransaction(): Promise

啟動KVStore數據庫中的事務,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvStore;
try {
    var count = 0;
    kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_ALL, function (data) {
        console.log('startTransaction ' + JSON.stringify(data));
        count++;
    });
    kvStore.startTransaction().then(async (err) = > {
        console.log('startTransaction success');
    }).catch((err) = > {
        console.log('startTransaction fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('startTransaction e ' + e);
}

commit8+

commit(callback: AsyncCallback): void

提交KVStore數據庫中的事務,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
callbackAsyncCallback回調函數。

示例:

let kvStore;
try {
    kvStore.commit(function (err,data) {
        if (err == undefined) {
            console.log('commit success');
        } else {
            console.log('commit fail');
        }
    });
}catch(e) {
    console.log('Commit e ' + e);
}

commit8+

commit(): Promise

提交KVStore數據庫中的事務,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvStore;
try {
    kvStore.commit().then(async (err) = > {
        console.log('commit success');
    }).catch((err) = > {
        console.log('commit fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('Commit e ' + e);
}

rollback8+

rollback(callback: AsyncCallback): void

在KVStore數據庫中回滾事務,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
callbackAsyncCallback回調函數。

示例:

let kvStore;
try {
    kvStore.rollback(function (err,data) {
        if (err == undefined) {
            console.log('commit success');
        } else {
            console.log('commit fail');
        }
    });
}catch(e) {
    console.log('Rollback e ' + e);
}

rollback8+

rollback(): Promise

在KVStore數據庫中回滾事務,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvStore;
try {
    kvStore.rollback().then(async (err) = > {
        console.log('rollback success');
    }).catch((err) = > {
        console.log('rollback fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('Rollback e ' + e);
}

enableSync8+

enableSync(enabled: boolean, callback: AsyncCallback): void

設定是否開啟同步,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
enabledboolean設定是否開啟同步,true表示開啟同步,false表示不啟用同步。
callbackAsyncCallback回調函數。

示例:

let kvStore;
try {
    kvStore.enableSync(true, function (err,data) {
        if (err == undefined) {
            console.log('enableSync success');
        } else {
            console.log('enableSync fail');
        }
    });
}catch(e) {
    console.log('EnableSync e ' + e);
}

enableSync8+

enableSync(enabled: boolean): Promise

設定是否開啟同步,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
enabledboolean設定是否開啟同步,true表示開啟同步,false表示不啟用同步。

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvStore;
try {
    kvStore.enableSync(true).then((err) = > {
        console.log('enableSync success');
    }).catch((err) = > {
        console.log('enableSync fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('EnableSync e ' + e);
}

setSyncRange8+

setSyncRange(localLabels: string[], remoteSupportLabels: string[], callback: AsyncCallback): void

設置同步范圍標簽,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
localLabelsstring[]表示本地設備的同步標簽。
remoteSupportLabelsstring[]表示要同步數據的設備的同步標簽。
callbackAsyncCallback回調函數。

示例:

let kvStore;
try {
    const localLabels = ['A', 'B'];
    const remoteSupportLabels = ['C', 'D'];
    kvStore.setSyncRange(localLabels, remoteSupportLabels, function (err,data) {
        console.log('SetSyncRange put success');
    });
}catch(e) {
    console.log('SetSyncRange e ' + e);
}

setSyncRange8+

setSyncRange(localLabels: string[], remoteSupportLabels: string[]): Promise

設置同步范圍標簽,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
localLabelsstring[]表示本地設備的同步標簽。
remoteSupportLabelsstring[]表示要同步數據的設備的同步標簽。

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvStore;
try {
    const localLabels = ['A', 'B'];
    const remoteSupportLabels = ['C', 'D'];
    kvStore.setSyncRange(localLabels, remoteSupportLabels).then((err) = > {
        console.log('setSyncRange success');
    }).catch((err) = > {
        console.log('delete fail ' + err);
    });
}catch(e) {
    console.log('SetSyncRange e ' + e);
}

SubscribeType

訂閱類型枚舉。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

名稱說明
SUBSCRIBE_TYPE_LOCAL0表示訂閱本地數據變更。
SUBSCRIBE_TYPE_REMOTE1表示訂閱遠端數據變更。
SUBSCRIBE_TYPE_ALL2表示訂閱遠端和本地數據變更。

ChangeNotification

數據變更時通知的對象,包括數據插入的數據、更新的數據、刪除的數據和設備ID。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

名稱參數類型可讀可寫說明
insertEntries[Entry][]數據添加記錄。
updateEntries[Entry][]數據更新記錄。
deleteEntries[Entry][]數據刪除記錄。
deviceIdstring設備ID,此處為設備UUID。

Entry

存儲在數據庫中的鍵值對。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

名稱參數類型可讀可寫說明
keystring鍵值。
value[Value]值對象。

Value

存儲在數據庫中的值對象。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

名稱參數類型可讀可寫說明
type[ValueType]值類型。
valueUint8Arraystringnumberboolean

ValueType

數據類型枚舉。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

名稱說明
STRING0表示值類型為字符串。
INTEGER1表示值類型為整數。
FLOAT2表示值類型為浮點數。
BYTE_ARRAY3表示值類型為字節數組。
BOOLEAN4表示值類型為布爾值。
DOUBLE5表示值類型為雙浮點數。

SingleKVStore

單版本數據庫,繼承自[KVStore]數據庫,提供查詢數據和同步數據的方法。

單版本數據庫,不對數據所屬設備進行區分,不同設備使用相同鍵寫入數據會互相覆蓋。比如,可以使用單版本數據庫實現個人日歷、聯系人數據在不同設備間的數據同步。

在調用SingleKVStore的方法前,需要先通過[getKVStore]構建一個SingleKVStore實例。

get

get(key: string, callback: AsyncCallback): void

獲取指定鍵的值,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
keystring要查詢數據的key,不能為空且長度不大于[MAX_KEY_LENGTH]。
callbackAsyncCallback)回調函數。返回獲取查詢的值。

示例:

let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try {
    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err,data) {
        if (err != undefined) {
            console.log("put err: " + JSON.stringify(err));
            return;
        }
        console.log("put success");
        kvStore.get(KEY_TEST_STRING_ELEMENT, function (err,data) {
            console.log("get success data: " + data);
        });
    });
}catch (e) {
    console.log("An unexpected error occurred. Error:" + e);
}

get

get(key: string): Promise

獲取指定鍵的值,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
keystring要查詢數據的key,不能為空且長度不大于[MAX_KEY_LENGTH]。

返回值:

類型說明
PromisePromise對象。返回獲取查詢的值。

示例:

let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try {
    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) = > {
        console.log("put success: " + JSON.stringify(data));
        kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) = > {
            console.log("get success data: " + data);
        }).catch((err) = > {
            console.log("get err: " + JSON.stringify(err));
        });
    }).catch((err) = > {
        console.log("put err: " + JSON.stringify(err));
    });
}catch (e) {
    console.log("An unexpected error occurred. Error:" + e);
}

getEntries8+

getEntries(keyPrefix: string, callback: AsyncCallback): void

獲取匹配指定鍵前綴的所有鍵值對,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
keyPrefixstring表示要匹配的鍵前綴。
callbackAsyncCallback<[Entry][]>回調函數。返回匹配指定前綴的鍵值對列表。

示例:

let kvStore;
try {
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_number_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.INTEGER,
                value : 222
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries, async function (err,data) {
        console.log('putBatch success');
        kvStore.getEntries('batch_test_number_key', function (err,entries) {
            console.log('getEntries success');
            console.log('entries.length: ' + entries.length);
            console.log('entries[0]: ' + JSON.stringify(entries[0]));
        });
    });
}catch(e) {
    console.log('PutBatch e ' + e);
}

getEntries8+

getEntries(keyPrefix: string): Promise

獲取匹配指定鍵前綴的所有鍵值對,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
keyPrefixstring表示要匹配的鍵前綴。

返回值:

類型說明
Promise<[Entry][]>Promise對象。返回匹配指定前綴的鍵值對列表。

示例:

let kvStore;
try {
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    console.log('entries: ' + entries);
    kvStore.putBatch(entries).then(async (err) = > {
        console.log('putBatch success');
        kvStore.getEntries('batch_test_string_key').then((entries) = > {
            console.log('getEntries success');
            console.log('entries.length: ' + entries.length);
            console.log('entries[0]: ' + JSON.stringify(entries[0]));
            console.log('entries[0].value: ' + JSON.stringify(entries[0].value));
            console.log('entries[0].value.value: ' + entries[0].value.value);
        }).catch((err) = > {
            console.log('getEntries fail ' + JSON.stringify(err));
        });
    }).catch((err) = > {
        console.log('putBatch fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('PutBatch e ' + e);
}

[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta1/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md#getentries8-2)getEntries8+

getEntries(query: Query, callback: AsyncCallback): void

獲取與指定Query對象匹配的鍵值對列表,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
query[Query]表示要匹配的鍵前綴。
callbackAsyncCallback<[Entry][]>回調函數。返回與指定Query對象匹配的鍵值對列表。

示例:

let kvStore;
try {
    var arr = new Uint8Array([21,31]);
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_bool_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.BYTE_ARRAY,
                value : arr
            }
        }
        entries.push(entry);
    }
    console.log('entries: ' + JSON.stringify(entries));
    kvStore.putBatch(entries, async function (err,data) {
        console.log('putBatch success');
        const query = new distributedData.Query();
        query.prefixKey("batch_test");
        kvStore.getEntries(query, function (err,entries) {
            console.log('getEntries success');
            console.log('entries.length: ' + entries.length);
            console.log('entries[0]: ' + JSON.stringify(entries[0]));
        });
    });
    console.log('GetEntries success');
}catch(e) {
    console.log('GetEntries e ' + e);
}

getEntries8+

getEntries(query: Query): Promise

獲取與指定Query對象匹配的鍵值對列表,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
query[Query]表示查詢對象。

返回值:

類型說明
Promise<[Entry][]>Promise對象。返回與指定Query對象匹配的鍵值對列表。

示例:

let kvStore;
try {
    var arr = new Uint8Array([21,31]);
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_bool_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.BYTE_ARRAY,
                value : arr
            }
        }
        entries.push(entry);
    }
    console.log('entries: ' + JSON.stringify(entries));
    kvStore.putBatch(entries).then(async (err) = > {
        console.log('putBatch success');
        const query = new distributedData.Query();
        query.prefixKey("batch_test");
        kvStore.getEntries(query).then((entries) = > {
            console.log('getEntries success');
        }).catch((err) = > {
            console.log('getEntries fail ' + JSON.stringify(err));
        });
    }).catch((err) = > {
        console.log('GetEntries putBatch fail ' + JSON.stringify(err))
    });
    console.log('GetEntries success');
}catch(e) {
    console.log('GetEntries e ' + e);
}

getResultSet8+[]()

getResultSet(keyPrefix: string, callback: AsyncCallback): void

從KvStore數據庫中獲取具有指定前綴的結果集,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
keyPrefixstring表示要匹配的鍵前綴。
callbackAsyncCallback<[KvStoreResultSet]>回調函數。返回具有指定前綴的結果集。

示例:

let kvStore;
try {
    let resultSet;
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries, async function (err, data) {
        console.log('GetResultSet putBatch success');
        kvStore.getResultSet('batch_test_string_key', async function (err, result) {
            console.log('GetResultSet getResultSet succeed.');
            resultSet = result;
            kvStore.closeResultSet(resultSet, function (err, data) {
                console.log('GetResultSet closeResultSet success');
            })
        });
    });
}catch(e) {
    console.log('GetResultSet e ' + e);
}

getResultSet8+

getResultSet(keyPrefix: string): Promise

從KVStore數據庫中獲取具有指定前綴的結果集,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
keyPrefixstring表示要匹配的鍵前綴。

返回值:

類型說明
Promise<[KvStoreResultSet]>Promise對象。返回具有指定前綴的結果集。

示例:

let kvStore;
try {
    let resultSet;
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries).then(async (err) = > {
        console.log('putBatch success');
    }).catch((err) = > {
        console.log('PutBatch putBatch fail ' + JSON.stringify(err));
    });
    kvStore.getResultSet('batch_test_string_key').then((result) = > {
        console.log('GetResult getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + JSON.stringify(err));
    });
    kvStore.closeResultSet(resultSet).then((err) = > {
        console.log('GetResult closeResultSet success');
    }).catch((err) = > {
        console.log('closeResultSet fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('GetResult e ' + e);
}

getResultSet8+

getResultSet(query: Query, callback: AsyncCallback): void

獲取與指定Query對象匹配的KvStoreResultSet對象,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
queryQuery表示查詢對象。
callbackAsyncCallback<[KvStoreResultSet]>回調函數,獲取與指定Query對象匹配的KvStoreResultSet對象。

示例:

let kvStore;
try {
    let resultSet;
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries, async function (err, data) {
        console.log('putBatch success');
        const query = new distributedData.Query();
        query.prefixKey("batch_test");
        kvStore.getResultSet(query, async function (err, result) {
            console.log('getResultSet succeed.');
            resultSet = result;
        });
    });
} catch(e) {
    console.log('GetResultSet e ' + e);
}

getResultSet8+

getResultSet(query: Query): Promise

獲取與指定Query對象匹配的KvStoreResultSet對象,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
query[Query]表示查詢對象。

返回值:

類型說明
Promise<[KvStoreResultSet]>Promise對象。獲取與指定Query對象匹配的KvStoreResultSet對象。

示例:

let kvStore;
try {
    let resultSet;
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries).then(async (err) = > {
        console.log('putBatch success');
    }).catch((err) = > {
        console.log('putBatch fail ' + JSON.stringify(err));
    });
    const query = new distributedData.Query();
    query.prefixKey("batch_test");
    kvStore.getResultSet(query).then((result) = > {
        console.log(' getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('GetResultSet e ' + e);
}

closeResultSet8+

closeResultSet(resultSet: KvStoreResultSet, callback: AsyncCallback): void

關閉由[SingleKvStore.getResultSet]返回的KvStoreResultSet對象,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
resultSet[KvStoreResultSet]表示要關閉的KvStoreResultSet對象。
callbackAsyncCallback回調函數。

示例:

let kvStore;
try {
    let resultSet = null;
    kvStore.closeResultSet(resultSet, function (err, data) {
        if (err == undefined) {
            console.log('closeResultSet success');
        } else {
            console.log('closeResultSet fail');
        }
    });
}catch(e) {
    console.log('CloseResultSet e ' + e);
}

closeResultSet8+

closeResultSet(resultSet: KvStoreResultSet): Promise

關閉由[SingleKvStore.getResultSet]返回的KvStoreResultSet對象,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
resultSet[KvStoreResultSet]表示要關閉的KvStoreResultSet對象。

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvStore;
try {
    let resultSet = null;
    kvStore.closeResultSet(resultSet).then(() = > {
        console.log('closeResultSet success');
    }).catch((err) = > {
        console.log('closeResultSet fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('CloseResultSet e ' + e);
}

getResultSize8+

getResultSize(query: Query, callback: AsyncCallback): void

獲取與指定Query對象匹配的結果數,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
query[Query]表示查詢對象。
callbackAsyncCallback回調函數。返回與指定Query對象匹配的結果數。

示例:

let kvStore;
try {
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries, async function (err, data) {
        console.log('putBatch success');
        const query = new distributedData.Query();
        query.prefixKey("batch_test");
        kvStore.getResultSize(query, async function (err, resultSize) {
            console.log('getResultSet succeed.');
        });
    });
} catch(e) {
    console.log('GetResultSize e ' + e);
}

getResultSize8+

getResultSize(query: Query): Promise

獲取與指定Query對象匹配的結果數,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
query[Query]表示查詢對象。

返回值:

類型說明
PromisePromise對象。獲取與指定Query對象匹配的結果數。

示例:

let kvStore;
try {
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries).then(async (err) = > {
        console.log('putBatch success');
    }).catch((err) = > {
        console.log('putBatch fail ' + JSON.stringify(err));
    });
    const query = new distributedData.Query();
    query.prefixKey("batch_test");
    kvStore.getResultSize(query).then((resultSize) = > {
        console.log('getResultSet succeed.');
    }).catch((err) = > {
        console.log('getResultSet failed: ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('GetResultSize e ' + e);
}

removeDeviceData8+

removeDeviceData(deviceId: string, callback: AsyncCallback): void

刪除指定設備的數據,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
deviceIdstring表示要刪除設備的名稱。
callbackAsyncCallback回調函數。

示例:

let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
try {
    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err,data) {
        console.log('put success');
        const deviceid = 'no_exist_device_id';
        kvStore.removeDeviceData(deviceid, async function (err,data) {
            if (err == undefined) {
                console.log('removeDeviceData success');
            } else {
                console.log('removeDeviceData fail');
                kvStore.get(KEY_TEST_STRING_ELEMENT, async function (err,data) {
                    console.log('RemoveDeviceData get success');
                });
            }
        });
    });
}catch(e) {
    console.log('RemoveDeviceData e ' + e);
}

removeDeviceData8+

removeDeviceData(deviceId: string): Promise

刪除指定設備的數據,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
deviceIdstring表示要刪除設備的名稱。

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
const VALUE_TEST_STRING_ELEMENT = 'value-string-001';
try {
    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((err) = > {
        console.log('removeDeviceData put success');
    }).catch((err) = > {
        console.log('put fail ' + JSON.stringify(err));
    });
    const deviceid = 'no_exist_device_id';
    kvStore.removeDeviceData(deviceid).then((err) = > {
        console.log('removeDeviceData success');
    }).catch((err) = > {
        console.log('removeDeviceData fail ' + JSON.stringify(err));
    });
    kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) = > {
        console.log('get success data:' + data);
    }).catch((err) = > {
        console.log('RemoveDeviceData get fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('RemoveDeviceData e ' + e);
}

on('syncComplete')8+

on(event: 'syncComplete', syncCallback: Callback>): void

訂閱同步完成事件回調通知。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
eventstring訂閱的事件名,固定為'syncComplete',表示同步完成事件。
syncCallbackCallback>回調函數。用于向調用方發送同步結果的回調。

示例:

let kvStore;
const KEY_TEST_FLOAT_ELEMENT = 'key_test_float';
const VALUE_TEST_FLOAT_ELEMENT = 321.12;
try {
    kvStore.on('syncComplete', function (data) {
        console.log('syncComplete ' + data)
    });
    kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT).then((data) = > {
        console.log('syncComplete put success');
    }).catch((error) = > {
        console.log('syncComplete put fail ' + error);
    });
}catch(e) {
    console.log('syncComplete put e ' + e);
}

off('syncComplete')8+

off(event: 'syncComplete', syncCallback?: Callback>): void

取消訂閱同步完成事件回調通知。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
eventstring取消訂閱的事件名,固定為'syncComplete',表示同步完成事件。
syncCallbackCallback>回調函數。用于向調用方發送同步結果的回調。

示例:

let kvStore;
try {
    const func = function (data) {
        console.log('syncComplete ' + data)
    };
    kvStore.on('syncComplete', func);
    kvStore.off('syncComplete', func);
}catch(e) {
    console.log('syncComplete e ' + e);
}

sync

sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void

在手動同步方式下,觸發數據庫同步。關于分布式數據服務的同步方式說明,請見[分布式數據服務概述]。

需要權限 : ohos.permission.DISTRIBUTED_DATASYNC。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
deviceIdListstring[]同一組網環境下,需要同步的設備的deviceId列表。
mode[SyncMode]同步模式。
allowedDelayMsnumber可選參數,允許延時時間,單位:ms(毫秒)。

示例:

let kvStore;
kvStore.sync('deviceIds', distributedData.SyncMode.PULL_ONLY, 1000);

etSyncParam8+

setSyncParam(defaultAllowedDelayMs: number, callback: AsyncCallback): void

設置數據庫同步允許的默認延遲,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
defaultAllowedDelayMsnumber表示數據庫同步允許的默認延遲,以毫秒為單位。
callbackAsyncCallback回調函數。

示例:

let kvStore;
try {
    const defaultAllowedDelayMs = 500;
    kvStore.setSyncParam(defaultAllowedDelayMs, function (err,data) {
        console.log('SetSyncParam put success');
    });
}catch(e) {
    console.log('testSingleKvStoreSetSyncParam e ' + e);
}

setSyncParam8+

setSyncParam(defaultAllowedDelayMs: number): Promise

設置數據庫同步允許的默認延遲,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
defaultAllowedDelayMsnumber表示數據庫同步允許的默認延遲,以毫秒為單位。

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvStore;
try {
    const defaultAllowedDelayMs = 500;
    kvStore.setSyncParam(defaultAllowedDelayMs).then((err) = > {
        console.log('SetSyncParam put success');
    }).catch((err) = > {
        console.log('SetSyncParam put fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('SetSyncParam e ' + e);
}

getSecurityLevel8+

getSecurityLevel(callback: AsyncCallback): void

獲取數據庫的安全級別,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
callbackAsyncCallback<[SecurityLevel]>回調函數。返回數據庫的安全級別。

示例:

let kvStore;
try {
    kvStore.getSecurityLevel(function (err,data) {
        console.log('getSecurityLevel success');
    });
}catch(e) {
    console.log('GetSecurityLevel e ' + e);
}

getSecurityLevel8+

getSecurityLevel(): Promise

獲取數據庫的安全級別,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

返回值:

類型說明
Promise<[SecurityLevel]>Promise對象。返回數據庫的安全級別。

示例:

let kvStore;
try {
    kvStore.getSecurityLevel().then((data) = > {
        console.log(' getSecurityLevel success');
    }).catch((err) = > {
        console.log('getSecurityLevel fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('GetSecurityLevel e ' + e);
}

DeviceKVStore8+

設備協同數據庫,繼承自KVStore,提供查詢數據和同步數據的方法。

設備協同數據庫,以設備維度對數據進行區分,每臺設備僅能寫入和修改本設備的數據,其它設備的數據對其是只讀的,無法修改其它設備的數據。

比如,可以使用設備協同數據庫實現設備間的圖片分享,可以查看其他設備的圖片,但無法修改和刪除其他設備的圖片。

在調用DeviceKVStore的方法前,需要先通過[getKVStore]構建一個DeviceKVStore實例。

get8+

get(deviceId: string, key: string, callback: AsyncCallback): void

獲取與指定設備ID和key匹配的string值,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
deviceIdstring標識要查詢其數據的設備。
keystring表示要查詢key值的鍵。
callbackAsyncCallback回調函數,返回匹配給定條件的字符串值。

示例:

let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
try{
    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err,data) {
        console.log('put success');
        kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT, function (err,data) {
            console.log('get success');
        });
    })
}catch(e) {
    console.log('get e' + e);
}

get8+

get(deviceId: string, key: string): Promise

獲取與指定設備ID和key匹配的string值,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
deviceIdstring標識要查詢其數據的設備。
keystring表示要查詢key值的鍵。

返回值:

類型說明
PromisePromise對象。返回匹配給定條件的字符串值。

示例:

let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
try {
    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(async (data) = > {
        console.log(' put success');
        kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT).then((data) = > {
            console.log('get success');
        }).catch((err) = > {
            console.log('get fail ' + JSON.stringify(err));
        });
    }).catch((error) = > {
        console.log('put error' + error);
    });
} catch (e) {
    console.log('Get e ' + e);
}

getEntries8+

getEntries(deviceId: string, keyPrefix: string, callback: AsyncCallback): void

獲取與指定設備ID和key前綴匹配的所有鍵值對,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
deviceIdstring標識要查詢其數據的設備。
keyPrefixstring表示要匹配的鍵前綴。
callbackAsyncCallback<[Entry][]>回調函數,返回滿足給定條件的所有鍵值對的列表。

示例:

let kvStore;
try {
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    console.log('entries: ' + entries);
    kvStore.putBatch(entries, async function (err,data) {
        console.log('putBatch success');
        kvStore.getEntries('localDeviceId', 'batch_test_string_key', function (err,entries) {
            console.log('getEntries success');
            console.log('entries.length: ' + entries.length);
            console.log('entries[0]: ' + JSON.stringify(entries[0]));
        });
    });
}catch(e) {
    console.log('PutBatch e ' + e);
}

getEntries8+

getEntries(deviceId: string, keyPrefix: string): Promise

獲取與指定設備ID和key前綴匹配的所有鍵值對,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
deviceIdstring標識要查詢其數據的設備。
keyPrefixstring表示要匹配的鍵前綴。

返回值:

類型說明
Promise<[Entry][]>Promise對象。返回匹配給定條件的所有鍵值對的列表。

示例:

let kvStore;
try {
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    console.log('entries: ' + entries);
    kvStore.putBatch(entries).then(async (err) = > {
        console.log('putBatch success');
        kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entries) = > {
            console.log('getEntries success');
            console.log('entries.length: ' + entries.length);
            console.log('entries[0]: ' + JSON.stringify(entries[0]));
            console.log('entries[0].value: ' + JSON.stringify(entries[0].value));
            console.log('entries[0].value.value: ' + entries[0].value.value);
        }).catch((err) = > {
            console.log('getEntries fail ' + JSON.stringify(err));
        });
    }).catch((err) = > {
        console.log('putBatch fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('PutBatch e ' + e);
}

getEntries8+

getEntries(query: Query, callback: AsyncCallback): void

獲取與指定Query對象匹配的鍵值對列表,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
query[Query]表示查詢對象。
callbackAsyncCallback<[Entry][]>回調函數,返回與指定Query對象匹配的鍵值對列表。

示例:

let kvStore;
try {
    var arr = new Uint8Array([21,31]);
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_bool_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.BYTE_ARRAY,
                value : arr
            }
        }
        entries.push(entry);
    }
    console.log('entries: ' + JSON.stringify(entries));
    kvStore.putBatch(entries, async function (err,data) {
        console.log('putBatch success');
        const query = new distributedData.Query();
        query.prefixKey("batch_test");
        query.deviceId('localDeviceId');
        kvStore.getEntries(query, function (err,entries) {
            console.log('getEntries success');
            console.log('entries.length: ' + entries.length);
            console.log('entries[0]: ' + JSON.stringify(entries[0]));
        });
    });
    console.log('GetEntries success');
}catch(e) {
    console.log('GetEntries e ' + e);
}

getEntries8+

getEntries(query: Query): Promise

獲取與指定Query對象匹配的鍵值對列表,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
query[Query]表示查詢對象。

返回值:

類型說明
Promise<[Entry][]>Promise對象。返回與指定Query對象匹配的鍵值對列表。

示例:

let kvStore;
try {
    var arr = new Uint8Array([21,31]);
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_bool_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.BYTE_ARRAY,
                value : arr
            }
        }
        entries.push(entry);
    }
    console.log('entries: ' + JSON.stringify(entries));
    kvStore.putBatch(entries).then(async (err) = > {
        console.log('putBatch success');
        const query = new distributedData.Query();
        query.prefixKey("batch_test");
        kvStore.getEntries(query).then((entries) = > {
            console.log('getEntries success');
        }).catch((err) = > {
            console.log('getEntries fail ' + JSON.stringify(err));
        });
    }).catch((err) = > {
        console.log('GetEntries putBatch fail ' + JSON.stringify(err))
    });
    console.log('GetEntries success');
}catch(e) {
    console.log('GetEntries e ' + e);
}

getEntries8+

getEntries(deviceId: string, query: Query, callback: AsyncCallback): void

獲取與指定設備ID和Query對象匹配的鍵值對列表,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
deviceIdstring鍵值對所屬的設備ID。
query[Query]表示查詢對象。
callbackAsyncCallback<[Entry][]>回調函數。返回與指定設備ID和Query對象匹配的鍵值對列表。

示例:

let kvStore;
try {
    var arr = new Uint8Array([21,31]);
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_bool_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.BYTE_ARRAY,
                value : arr
            }
        }
        entries.push(entry);
    }
    console.log('entries: ' + JSON.stringify(entries));
    kvStore.putBatch(entries, async function (err,data) {
        console.log('putBatch success');
        var query = new distributedData.Query();
        query.deviceId('localDeviceId');
        query.prefixKey("batch_test");
        kvStore.getEntries('localDeviceId', query, function (err,entries) {
            console.log('getEntries success');
            console.log('entries.length: ' + entries.length);
            console.log('entries[0]: ' + JSON.stringify(entries[0]));
        })
    });
    console.log('GetEntries success');
}catch(e) {
    console.log('GetEntries e ' + e);
}

getEntries8+

getEntries(deviceId: string, query: Query): Promise

獲取與指定設備ID和Query對象匹配的鍵值對列表,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
deviceIdstring鍵值對所屬的設備ID。
query[Query]表示查詢對象。

返回值:

類型說明
Promise<[Entry][]>Promise對象。返回與指定設備ID和Query對象匹配的鍵值對列表。

示例:

let kvStore;
try {
    var arr = new Uint8Array([21,31]);
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_bool_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.BYTE_ARRAY,
                value : arr
            }
        }
        entries.push(entry);
    }
    console.log('entries: ' + JSON.stringify(entries));
    kvStore.putBatch(entries).then(async (err) = > {
        console.log('putBatch success');
        var query = new distributedData.Query();
        query.deviceId('localDeviceId');
        query.prefixKey("batch_test");
        kvStore.getEntries('localDeviceId', query).then((entries) = > {
            console.log('getEntries success');
        }).catch((err) = > {
            console.log('getEntries fail ' + JSON.stringify(err));
        });
    }).catch((err) = > {
        console.log('putBatch fail ' + JSON.stringify(err));
    });
    console.log('GetEntries success');
}catch(e) {
    console.log('GetEntries e ' + e);
}

getResultSet8+[]()

getResultSet(deviceId: string, keyPrefix: string, callback: AsyncCallback): void

獲取與指定設備ID和key前綴匹配的KvStoreResultSet對象,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
deviceIdstring標識要查詢其數據的設備。
keyPrefixstring表示要匹配的鍵前綴。
callbackAsyncCallback<[KvStoreResultSet][]>回調函數。返回與指定設備ID和key前綴匹配的KvStoreResultSet對象。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('localDeviceId', 'batch_test_string_key', async function (err, result) {
        console.log('getResultSet succeed.');
        resultSet = result;
        kvStore.closeResultSet(resultSet, function (err, data) {
            console.log('closeResultSet success');
        })
    });
}catch(e) {
    console.log('GetResultSet e ' + e);
}

getResultSet8+

getResultSet(deviceId: string, keyPrefix: string): Promise

獲取與指定設備ID和key前綴匹配的KvStoreResultSet對象,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
deviceIdstring標識要查詢其數據的設備。
keyPrefixstring表示要匹配的鍵前綴。

返回值:

類型說明
Promise<[KvStoreResultSet][]>Promise對象。返回與指定設備ID和key前綴匹配的KvStoreResultSet對象。

示例:

let kvStore;
try {
    let resultSet;
    kvStore.getResultSet('localDeviceId', 'batch_test_string_key').then((result) = > {
        console.log('getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + JSON.stringify(err));
    });
    kvStore.closeResultSet(resultSet).then((err) = > {
        console.log('closeResultSet success');
    }).catch((err) = > {
        console.log('closeResultSet fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('GetResultSet e ' + e);
}

getResultSet8+

getResultSet(query: Query, callback: AsyncCallback): void

獲取與指定Query對象匹配的KvStoreResultSet對象,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
query[Query]表示查詢對象。
callbackAsyncCallback<[KvStoreResultSet][]>回調函數,返回與指定Query對象匹配的KvStoreResultSet對象。

示例:

let kvStore;
try {
    let resultSet;
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries, async function (err, data) {
        console.log('putBatch success');
        const query = new distributedData.Query();
        query.prefixKey("batch_test");
        query.deviceId('localDeviceId');
        kvStore.getResultSet(query, async function (err, result) {
            console.log('getResultSet succeed.');
            resultSet = result;
            kvStore.closeResultSet(resultSet, function (err, data) {
                console.log('closeResultSet success');
            })
        });
    });
} catch(e) {
    console.log('GetResultSet e ' + e);
}

getResultSet8+

getResultSet(query: Query): Promise

獲取與指定Query對象匹配的KvStoreResultSet對象,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
query[Query]表示查詢對象。

返回值:

類型說明
Promise<[KvStoreResultSet][]>Promise對象。返回與指定Query對象匹配的KvStoreResultSet對象。

示例:

let kvStore;
try {
    let resultSet;
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries).then(async (err) = > {
        console.log('putBatch success');
    }).catch((err) = > {
        console.log('putBatch fail ' + err);
    });
    const query = new distributedData.Query();
    query.deviceId('localDeviceId');
    query.prefixKey("batch_test");
    console.log("GetResultSet " + query.getSqlLike());
    kvStore.getResultSet(query).then((result) = > {
        console.log('getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('getResultSet failed: ' + JSON.stringify(err));
    });
    kvStore.closeResultSet(resultSet).then((err) = > {
        console.log('closeResultSet success');
    }).catch((err) = > {
        console.log('closeResultSet fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('GetResultSet e ' + e);
}

getResultSet8+

getResultSet(deviceId: string, query: Query, callback: AsyncCallback): void

獲取與指定設備ID和Query對象匹配的KvStoreResultSet對象,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
deviceIdstringKvStoreResultSet對象所屬的設備ID。
query[Query]表示查詢對象。
callbackAsyncCallback<[KvStoreResultSet][]>回調函數。返回與指定設備ID和Query對象匹配的KvStoreResultSet對象。

示例:

let kvStore;
try {
    let resultSet;
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries, async function (err, data) {
        console.log('putBatch success');
        const query = new distributedData.Query();
        query.prefixKey("batch_test");
        kvStore.getResultSet('localDeviceId', query, async function (err, result) {
            console.log('getResultSet succeed.');
            resultSet = result;
            kvStore.closeResultSet(resultSet, function (err, data) {
                console.log('closeResultSet success');
            })
        });
    });
} catch(e) {
    console.log('GetResultSet e ' + e);
}

getResultSet8+

getResultSet(deviceId: string, query: Query): Promise

獲取與指定設備ID和Query對象匹配的KvStoreResultSet對象,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
deviceIdstringKvStoreResultSet對象所屬的設備ID。
query[Query]表示查詢對象。

返回值:

類型說明
Promise<[KvStoreResultSet][]>Promise對象。返回與指定設備ID和Query對象匹配的KvStoreResultSet對象。

示例:

let kvStore;
try {
    let resultSet;
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries).then(async (err) = > {
        console.log('GetResultSet putBatch success');
    }).catch((err) = > {
        console.log('PutBatch putBatch fail ' + JSON.stringify(err));
    });
    const query = new distributedData.Query();
    query.prefixKey("batch_test");
    kvStore.getResultSet('localDeviceId', query).then((result) = > {
        console.log('GetResultSet getResultSet succeed.');
        resultSet = result;
    }).catch((err) = > {
        console.log('GetResultSet getResultSet failed: ' + JSON.stringify(err));
    });
    query.deviceId('localDeviceId');
    console.log("GetResultSet " + query.getSqlLike());
    kvStore.closeResultSet(resultSet).then((err) = > {
        console.log('GetResultSet closeResultSet success');
    }).catch((err) = > {
        console.log('GetResultSet closeResultSet fail ' + JSON.stringify(err));
    });

}catch(e) {
    console.log('GetResultSet e ' + e);
}

closeResultSet8+

closeResultSet(resultSet: KvStoreResultSet, callback: AsyncCallback): void

關閉由[DeviceKVStore.getResultSet]返回的KvStoreResultSet對象,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
resultSet[KvStoreResultSet]指示要關閉的KvStoreResultSet對象。
callbackAsyncCallback回調函數。

示例:

let kvStore;
try {
    console.log('CloseResultSet success');
    let resultSet = null;
    kvStore.closeResultSet(resultSet, function (err, data) {
        if (err == undefined) {
            console.log('closeResultSet success');
        } else {
            console.log('closeResultSet fail');
        }
    });
}catch(e) {
    console.log('CloseResultSet e ' + e);
}

closeResultSet8+

closeResultSet(resultSet: KvStoreResultSet): Promise

關閉由[DeviceKVStore.getResultSet]返回的KvStoreResultSet對象,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
resultSet[KvStoreResultSet]指示要關閉的KvStoreResultSet對象。

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvStore;
try {
    console.log('CloseResultSet success');
    let resultSet = null;
    kvStore.closeResultSet(resultSet).then(() = > {
        console.log('closeResultSet success');
    }).catch((err) = > {
        console.log('closeResultSet fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('CloseResultSet e ' + e);
}

getResultSize8+

getResultSize(query: Query, callback: AsyncCallback): void

獲取與指定Query對象匹配的結果數,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
query[Query]表示查詢對象。
callbackAsyncCallback回調函數,返回與指定Query對象匹配的結果數。

示例:

let kvStore;
try {
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries, async function (err, data) {
        console.log('putBatch success');
        const query = new distributedData.Query();
        query.prefixKey("batch_test");
        query.deviceId('localDeviceId');
        kvStore.getResultSize(query, async function (err, resultSize) {
            console.log('getResultSet succeed.');
        });
    });
} catch(e) {
    console.log('GetResultSize e ' + e);
}

[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta1/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md#getresultsize8-3)getResultSize8+

getResultSize(query: Query): Promise

獲取與指定Query對象匹配的結果數,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
query[Query]表示查詢對象。

返回值:

類型說明
PromisePromise對象。返回與指定Query對象匹配的結果數。

示例:

let kvStore;
try {
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries).then(async (err) = > {
        console.log('putBatch success');
    }).catch((err) = > {
        console.log('putBatch fail ' + JSON.stringify(err));
    });
    const query = new distributedData.Query();
    query.prefixKey("batch_test");
    query.deviceId('localDeviceId');
    kvStore.getResultSize(query).then((resultSize) = > {
        console.log('getResultSet succeed.');
    }).catch((err) = > {
        console.log('getResultSet failed: ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('GetResultSize e ' + e);
}

getResultSize8+

getResultSize(deviceId: string, query: Query, callback: AsyncCallback): void;

獲取與指定設備ID和Query對象匹配的結果數,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
deviceIdstringKvStoreResultSet對象所屬的設備ID。
query[Query]表示查詢對象。
callbackAsyncCallback回調函數。返回與指定設備ID和Query對象匹配的結果數。

示例:

let kvStore;
try {
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries, async function (err, data) {
        console.log('putBatch success');
        const query = new distributedData.Query();
        query.prefixKey("batch_test");
        kvStore.getResultSize('localDeviceId', query, async function (err, resultSize) {
            console.log('getResultSet succeed.');
        });
    });
} catch(e) {
    console.log('GetResultSize e ' + e);
}

getResultSize8+

getResultSize(deviceId: string, query: Query): Promise

獲取與指定設備ID和Query對象匹配的結果數,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
deviceIdstringKvStoreResultSet對象所屬的設備ID。
query[Query]表示查詢對象。

返回值:

類型說明
PromisePromise對象。返回與指定設備ID和Query對象匹配的結果數。

示例:

let kvStore;
try {
    let entries = [];
    for (var i = 0; i < 10; i++) {
        var key = 'batch_test_string_key';
        var entry = {
            key : key + i,
            value : {
                type : distributedData.ValueType.STRING,
                value : 'batch_test_string_value'
            }
        }
        entries.push(entry);
    }
    kvStore.putBatch(entries).then(async (err) = > {
        console.log('putBatch success');
    }).catch((err) = > {
        console.log('putBatch fail ' + JSON.stringify(err));
    });
    var query = new distributedData.Query();
    query.prefixKey("batch_test");
    kvStore.getResultSize('localDeviceId', query).then((resultSize) = > {
        console.log('getResultSet succeed.');
    }).catch((err) = > {
        console.log('getResultSet failed: ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('GetResultSize e ' + e);
}

removeDeviceData8+

removeDeviceData(deviceId: string, callback: AsyncCallback): void

從當前數據庫中刪除指定設備的數據,使用callback異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
deviceIdstring標識要刪除其數據的設備。
callbackAsyncCallback回調函數。

示例:

let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-string-001';
try {
    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err,data) {
        console.log('RemoveDeviceData  put success');
        const deviceid = 'no_exist_device_id';
        kvStore.removeDeviceData(deviceid, async function (err,data) {
            if (err == undefined) {
                console.log('removeDeviceData success');
            } else {
                console.log('removeDeviceData fail');
                kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT, async function (err,data) {
                    console.log('RemoveDeviceData get success');
                });
            }
        });
    });
}catch(e) {
    console.log('RemoveDeviceData e ' + e);
}

removeDeviceData8+

removeDeviceData(deviceId: string): Promise

從當前數據庫中刪除指定設備的數據,使用Promise異步回調。

系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore

參數:

參數名參數類型必填說明
deviceIdstring標識要刪除其數據的設備。

返回值:

類型說明
Promise無返回結果的Promise對象。

示例:

let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-string-001';
try {
    kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((err) = > {
        console.log('RemoveDeviceData put success');
    }).catch((err) = > {
        console.log('RemoveDeviceData put fail ' + JSON.stringify(err));
    });
    const deviceid = 'no_exist_device_id';
    kvStore.removeDeviceData(deviceid).then((err) = > {
        console.log('removeDeviceData success');
    }).catch((err) = > {
        console.log('removeDeviceData fail ' + JSON.stringify(err));
    });
    kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT).then((data) = > {
        console.log('RemoveDeviceData get success data:' + data);
    }).catch((err) = > {
        console.log('RemoveDeviceData get fail ' + JSON.stringify(err));
    });
}catch(e) {
    console.log('RemoveDeviceData e ' + e);
}

sync8+

sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void

在手動同步方式下,觸發數據庫同步。關于分布式數據服務的同步方式說明,請見[分布式數據服務概述]。

需要權限 : ohos.permission.DISTRIBUTED_DATASYNC。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
deviceIdListstring[]需要同步DeviceKvStore數據庫的設備ID列表。
mode[SyncMode]同步模式。
allowedDelayMsnumber可選參數,允許延時時間,單位:ms(毫秒)。

示例:

let kvStore;
const KEY_TEST_SYNC_ELEMENT = 'key_test_sync';
const VALUE_TEST_SYNC_ELEMENT = 'value-string-001';
try {
    kvStore.on('syncComplete', function (data) {
        console.log('Sync dataChange');
    });
    kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err,data) {
        console.log('Sync put success');
        const devices = ['deviceList'];
        const mode = distributedData.SyncMode.PULL_ONLY;
        kvStore.sync(devices, mode);
    });
}catch(e) {
    console.log('Sync e' + e);
}

on('syncComplete')8+

on(event: 'syncComplete', syncCallback: Callback>): void

訂閱同步完成事件回調通知。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
eventstring訂閱的事件名,固定為'syncComplete',表示同步完成事件。
syncCallbackCallback>回調函數。用于向調用方發送同步結果的回調。

示例:

let kvStore;
const KEY_TEST_FLOAT_ELEMENT = 'key_test_float';
const VALUE_TEST_FLOAT_ELEMENT = 321.12;
try {
    kvStore.on('syncComplete', function (data) {
        console.log('syncComplete ' + data)
    });
    kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT).then((data) = > {
        console.log('syncComplete put success');
    }).catch((error) = > {
        console.log('syncComplete put fail ' + error);
    });
}catch(e) {
    console.log('syncComplete put e ' + e);
}

off('syncComplete')8+

off(event: 'syncComplete', syncCallback?: Callback>): void

取消訂閱同步完成事件回調通知,該方法為同步方法。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

參數:

參數名參數類型必填說明
eventstring取消訂閱的事件名,固定為'syncComplete',表示同步完成事件。
syncCallbackCallback>回調函數。用于向調用方發送同步結果的回調。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
搜狗高速瀏覽器截圖20240326151344.png

示例:

let kvStore;
try {
    const func = function (data) {
        console.log('syncComplete ' + data)
    };
    kvStore.on('syncComplete', func);
    kvStore.off('syncComplete', func);
}catch(e) {
    console.log('syncComplete e ' + e);
}

SyncMode

同步模式枚舉。

系統能力: SystemCapability.DistributedDataManager.KVStore.Core

名稱說明
PULL_ONLY0表示只能從遠端拉取數據到本端。
PUSH_ONLY1表示只能從本端推送數據到遠端。
PUSH_PULL2表示從本端推送數據到遠端,然后從遠端拉取數據到本端。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8150

    瀏覽量

    149659
  • 數據管理
    +關注

    關注

    1

    文章

    276

    瀏覽量

    19528
  • 分布式
    +關注

    關注

    1

    文章

    809

    瀏覽量

    74361
  • 鴻蒙
    +關注

    關注

    56

    文章

    2261

    瀏覽量

    42428
收藏 人收藏

    評論

    相關推薦

    HarmonyOS開發實例:【分布式數據管理

    eTS中分布式數據管理的使用,包括KVManager對象實例的創建和KVStore數據流轉的使用。
    的頭像 發表于 04-11 09:57 ?733次閱讀
    HarmonyOS<b class='flag-5'>開發</b>實例:【<b class='flag-5'>分布式</b><b class='flag-5'>數據管理</b>】

    基于Openharmony輕量級操作系統的分布式數據管理開發案例

    實驗內容本例程演示如何在小凌派-RK2206開發板上使用OpenHarmony輕量級操作系統進行KvStore(即分布式數據管理數據讀寫。例程:(1)創建兩個線程,一個負責寫入KvS
    的頭像 發表于 08-07 08:23 ?494次閱讀
    基于Openharmony輕量級操作系統的<b class='flag-5'>分布式</b><b class='flag-5'>數據管理</b><b class='flag-5'>開發</b>案例

    數據管理功能詳解

    設計和數據標準化的同時,進一步實現行業數字化互通、產業智能化互聯。浩辰3D軟件作為創新研發類工業軟件,不僅在智能設計和創新研發方面有著獨特的優勢,在數據管理方面更是獨具匠心。浩辰3D軟件可以在不使用數據
    發表于 11-03 15:32

    HarmonyOS分布式數據庫,為啥這么牛?

    開發者無需關注索引引擎實現;業務通過一套接口調用,就可以建立起應用內的索引,同時系統還具備強大的搜索服務,提供了豐富的檢索接口。 03 出色的性能表現 除了實現基礎功能,HarmonyOS
    發表于 11-19 15:38

    如何通過基于云的數據管理技術實現分布式設備的態勢感知?

    如何通過基于云的數據管理技術實現分布式設備的態勢感知?
    發表于 05-25 06:56

    OpenHarmony標準設備應用開發(三)——分布式數據管理

    /js-apis-distributed-data.md數據分布式運作示意圖,如下所示。實現步驟:分布式數據管理依賴 @
    發表于 04-07 18:48

    【學習打卡】OpenHarmony的分布式數據管理介紹

    使用它來做出更明智的決策,如果一個系統缺乏適當的數據管理,那就可能會導致數據孤島、數據集之間不一致,甚至數據本身存在錯誤。有效的分布式
    發表于 07-15 15:49

    HarmonyOS數據管理與應用數據持久化(一)

    。 運作機制 數據管理模塊包括用戶首選項、鍵值型數據管理、關系型數據管理分布式數據對象和跨應用數據管理
    發表于 11-01 16:27

    工業現場數據管理 | 什么是工業現場數據管理

    數據管理,以傳輸層/云作為界限,將其以下的所有南側的車間、工廠、控制站點等工業現場封裝成一個有序的“黑盒子”,并向外提供標準的通訊、數據和服務接口,便于各類平臺、應用或云系統與工業現場進行數據
    的頭像 發表于 04-28 19:08 ?2087次閱讀

    工業現場數據管理—什么是工業現場數據管理

    工業現場數據管理,以“數據”為核心關注點,除了著重解決各類工業現場數據的獲取、清洗、預處理等數據初始化問題之外,還包括對工業現場數據的安全
    的頭像 發表于 12-25 17:51 ?889次閱讀

    HarmonyOS分布式數據管理三大核心技術是什么?

    隨著華為官方公布——將于 2021 年 4 月開放首批升級鴻蒙系統,預計屆時將會涌現一大批鴻蒙學習者,那么你對 HarmonyOS 分布式數據管理三大核心技術有多少了解呢? 這三大技術
    的頭像 發表于 03-14 10:54 ?5221次閱讀

    分享一個有趣的鴻蒙分布式小游戲

    MainAbilitySlice 里面申請 ? 分布式數據管理 ohos.permission.DISTRIBUTED_DATASYNC 允許
    的頭像 發表于 11-01 14:29 ?2369次閱讀
    分享一個有趣的<b class='flag-5'>鴻蒙</b><b class='flag-5'>分布式</b>小游戲

    如何通過分布式數據管理實現多臺設備間的數據同步更新

    OpenHarmony 中如何實現音樂播放,顯示動畫,轉場動畫(頁面間轉場)等功能。本章是 OpenHarmony 標準設備應用開發的第三篇文章,將會在前面兩章的基礎上給大家講解分布式數據管理在多臺設備間,當
    的頭像 發表于 02-25 11:47 ?3327次閱讀
    如何通過<b class='flag-5'>分布式</b><b class='flag-5'>數據管理</b>實現多臺設備間的<b class='flag-5'>數據</b>同步更新

    儲能系統數據管理與狀態監測平臺

    加工電池儲能系統數據管理與狀態監測平臺,支持不低于80MW分布式儲能裝置的信息采集和處理,支持與分布式儲能裝置以及上級監控中心的通信,實現分布式儲能系統
    發表于 04-13 10:39 ?1次下載
    儲能系統<b class='flag-5'>數據管理</b>與狀態監測平臺

    鴻蒙開發接口數據管理:【@ohos.data.distributedDataObject (分布式數據對象)】

    本模塊提供管理基本數據對象的相關能力,包括創建、查詢、刪除、修改、訂閱等;同時支持相同應用多設備間的分布式數據對象協同能力。
    的頭像 發表于 06-07 17:51 ?1232次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>數據管理</b>:【@<b class='flag-5'>ohos.data</b>.distributedDataObject (<b class='flag-5'>分布式</b><b class='flag-5'>數據</b>對象)】