harmony-utils之KvUtil,鍵值型數(shù)據(jù)庫工具類
harmony-utils 簡介與說明
harmony-utils 一款功能豐富且極易上手的HarmonyOS工具庫,借助眾多實用工具類,致力于助力開發(fā)者迅速構(gòu)建鴻蒙應(yīng)用。其封裝的工具涵蓋了APP、設(shè)備、屏幕、授權(quán)、通知、線程間通信、彈框、吐司、生物認證、用戶首選項、拍照、相冊、掃碼、文件、日志、異常捕獲、字符、字符串、數(shù)字、集合、日期、隨機、base64、加密、解密、JSON等一系列的功能和作,能夠滿足各種不同的開發(fā)需求。
picker_utils 是harmony-utils拆分出來的一個子庫,包含 PickerUtil、PhotoHelper、ScanUtil。
下載安裝ohpm i @pura/harmony-utils
ohpm i @pura/picker_utils
//全局初始化方法,在UIAbility的onCreate方法中初始化 AppUtil.init()
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
AppUtil.init(this.context);
}
API方法與使用
put 添加指定類型的鍵值對到數(shù)據(jù)庫
KvUtil.put("name", "張三叁");
KvUtil.put("id", 10018);
KvUtil.put("sex", RandomUtil.getRandomBoolean());
KvUtil.put("info", RandomUtil.getRandomUint8Array(8));
get 獲取指定鍵的值
let kv1 = await KvUtil.get("name");
getString 獲取指定鍵的值,string類型
let kv2 = await KvUtil.getString('name');
getNumber 獲取指定鍵的值,number類型
let kv3 = await KvUtil.getNumber("id");
getBoolean 獲取指定鍵的值,boolean類型
let kv4 = await KvUtil.getBoolean('sex');
getUint8Array 獲取指定鍵的值,uint8Array類型
let kv5 = await KvUtil.getUint8Array('info');
delete 從數(shù)據(jù)庫中刪除指定鍵值的數(shù)據(jù)
KvUtil.delete("name");
ToastUtil.showToast('刪除緩存成功');
putBatch 批量插入鍵值對到SingleKVStore數(shù)據(jù)庫中
let entries: distributedKVStore.Entry[] = [];
for (let i = 0; i < 10; i++) {
let key = 'batch_test_string_key';
let entry: distributedKVStore.Entry = {
key: key + i,
value: {
type: distributedKVStore.ValueType.STRING,
value: 'batch_test_string_value'
}
}
entries.push(entry);
}
KvUtil.putBatch(entries).then(() = > {
ToastUtil.showToast('批量插入成功');
}).catch((err: BusinessError) = > {
ToastUtil.showToast('批量插入異常!');
});
deleteBatch 批量刪除SingleKVStore數(shù)據(jù)庫中的鍵值對
let keys = ["batch_test_string_key0","batch_test_string_key1","batch_test_string_key2","batch_test_string_key3"];
KvUtil.deleteBatch(keys).then(() = > {
ToastUtil.showToast('批量刪除成功');
}).catch((err: BusinessError) = > {
ToastUtil.showToast('批量刪除異常!');
});
getEntries 獲取匹配指定鍵前綴的所有鍵值對
let keyPrefix = "batch_test_string_key";
KvUtil.getEntries(keyPrefix).then((entries: distributedKVStore.Entry[]) = > {
Utils.showSheetText(JSON.stringify(entries, null, 2))
}).catch((err: BusinessError) = > {
ToastUtil.showToast(`異常信息:${err.message}`);
});
backup 以指定名稱備份數(shù)據(jù)庫
let backupFile = "BK001";
KvUtil.backup(backupFile, (err: BusinessError) = > {
if (err) {
console.error(`Failed to backup.code is ${err.code},message is ${err.message} `);
} else {
console.info(`Succeeded in backupping data`);
}
});
deleteBackup 根據(jù)指定名稱刪除備份文件
let files = ["BK001", "BK002"];
KvUtil.deleteBackup(files, (err: BusinessError, data: [string, number][]) = > {
if (err) {
console.error(`Failed to delete Backup.code is ${err.code},message is ${err.message}`);
} else {
console.info(`Succeed in deleting Backup.data=${data}`);
}
});
restore 從指定的數(shù)據(jù)庫文件恢復(fù)數(shù)據(jù)庫
let backupFile = "BK001";
KvUtil.restore(backupFile, (err: BusinessError) = > {
if (err) {
console.error(`Failed to backup.code is ${err.code},message is ${err.message} `);
} else {
console.info(`Succeeded in backupping data`);
}
});
onDataChange 訂閱指定類型的數(shù)據(jù)變更通知
private callBack: Callback< distributedKVStore.ChangeNotification > = (change) = > {
let pStr = JSON.stringify(change, null, 2);
LogUtil.info(pStr);
}
KvUtil.onDataChange(distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_ALL, callBack);
offDataChange 取消訂閱數(shù)據(jù)變更通知
KvUtil.offDataChange(callBack);
ToastUtil.showToast('取消訂閱數(shù)據(jù)變更通知');
創(chuàng)作不易,請給童長老點贊
審核編輯 黃宇
-
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3926瀏覽量
66192 -
Harmony
+關(guān)注
關(guān)注
0文章
108瀏覽量
3015
發(fā)布評論請先 登錄
評論