kvStore

键值数据库

1存储能力强于用户首选项,不能存储复杂数据 2json作为存储对象,覆盖存储,直接存储到硬盘不用flush 3实现多个设备终端协同 4 5设备协同数据库:单条记录 key<=896B, value<4MB 6单版本数据库 key<=1KB, value<4MB 7最多支持同时打开16个键值型分布式数据库
存储能力强于用户首选项,不能存储复杂数据 json作为存储对象,覆盖存储,直接存储到硬盘不用flush 实现多个设备终端协同 设备协同数据库:单条记录 key<=896B, value<4MB 单版本数据库 key<=1KB, value<4MB 最多支持同时打开16个键值型分布式数据库

 1import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit';  2import { hilog } from '@kit.PerformanceAnalysisKit';  3import { window } from '@kit.ArkUI';  4import { cardDBUtils } from '../utils/CardDBUtils';  5import preferencesUtil from '../utils/PreferencesUtils';  6import kvStore from '../utils/KVStore';  7  8const DOMAIN = 0x0000;  9 10export default class EntryAbility extends UIAbility { 11 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { 12 this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); 13 hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); 14 } 15 16 onDestroy(): void { 17 hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onDestroy'); 18 } 19 20 onWindowStageCreate(windowStage: window.WindowStage): void { 21 // 加载数据库 22 cardDBUtils.initCardDB(this.context, 'goodcard') 23 preferencesUtil.init(this.context, 'goodMail') 24 preferencesUtil.insertData('theme', 'pink') 25 26 kvStore.init(this.context) 27 kvStore.createStore('myStore') 28....
import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; import { cardDBUtils } from '../utils/CardDBUtils'; import preferencesUtil from '../utils/PreferencesUtils'; import kvStore from '../utils/KVStore'; const DOMAIN = 0x0000; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); } onDestroy(): void { hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onDestroy'); } onWindowStageCreate(windowStage: window.WindowStage): void { // 加载数据库 cardDBUtils.initCardDB(this.context, 'goodcard') preferencesUtil.init(this.context, 'goodMail') preferencesUtil.insertData('theme', 'pink') kvStore.init(this.context) kvStore.createStore('myStore') ....

 1import { distributedKVStore } from "@kit.ArkData";  2import { BusinessError } from "@kit.BasicServicesKit";  3  4export class KVStore {  5 // 代表数据库管理对象  6 private kvManager: distributedKVStore.KVManager | undefined = undefined  7 // 管理数据库里面数据列表  8 private kvStore: distributedKVStore.SingleKVStore | undefined = undefined  9 10 init(context: Context) { 11 // 定义数据库初始化需要的字段 12 const kvManagerConfig: distributedKVStore.KVManagerConfig = { 13 context: context, 14 bundleName: 'com.example.snailmall' 15 } 16 17 try { 18 this.kvManager = distributedKVStore.createKVManager(kvManagerConfig) 19 console.log('success create kvManager') 20 } catch (e) { 21 let error = e as BusinessError 22 console.log(`failed to create kvManager, ${error.name}-${error.message}`) 23 } 24 } 25 26 createStore(storeId: string) { 27 try { 28 // 定义store参数 29 const options: distributedKVStore.Options = { 30 createIfMissing: true, 31 encrypt: false, 32 backup: false, 33 autoSync: false, 34 // kvStoreType不填时,默认创建多设备协同数据库 35 kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION, 36 // 多设备协同数据库 kvStoreType:distributedKVStore.KVStoreType.DEVICE_COLLABORATION 37 securityLevel: distributedKVStore.SecurityLevel.S1 38 } 39 40 this.kvManager?.getKVStore<distributedKVStore.SingleKVStore>(storeId, options, 41 (err, store: distributedKVStore.SingleKVStore) => { 42 if (err) { 43 console.log('create kvStore failed') 44 return 45 } 46 console.log('create kvStore success') 47 this.kvStore = store 48 }) 49 } catch (e) { 50 let error = e as BusinessError 51 console.log(`failed to create kvStore, ${error.name}-${error.message}`) 52 } 53 } 54 55 putData(key: string, value: string) { 56 try { 57 this.kvStore?.put(key, value, (err) => { 58 if (err) { 59 console.log(`kvStore insert data failed, ${err.name}-${err.code}`) 60 return 61 } 62 console.log('kvStore insert data success') 63 }) 64 } catch (e) { 65 let error = e as BusinessError 66 console.log(`kvStore insert data failed, ${error.name}-${error.message}`) 67 } 68 } 69 70 getData(key: string) { 71 return new Promise((resolve: (value: string | number | boolean | Uint8Array) => void, 72 reject: (value?: string) => void) => { 73 this.kvStore?.get(key, (err, data) => { 74 if (err) { 75 console.log(`kvStore get data failed, ${err.name}-${err.code}`) 76 reject('kvStore get data failed') 77 return 78 } 79 console.log(`kvStore get data success, ${data}`) 80 resolve(data) 81 }) 82 }) 83 } 84 85 deleteData(key: string) { 86 this.kvStore?.delete(key, (err, data) => { 87 if (err) { 88 console.log(`kvStore get data failed, ${err.name}-${err.code}`) 89 return 90 } 91 console.log(`kvStore get data success, ${data}`) 92 }) 93 } 94} 95 96const kvStore = new KVStore() 97 98export default kvStore
import { distributedKVStore } from "@kit.ArkData"; import { BusinessError } from "@kit.BasicServicesKit"; export class KVStore { // 代表数据库管理对象 private kvManager: distributedKVStore.KVManager | undefined = undefined // 管理数据库里面数据列表 private kvStore: distributedKVStore.SingleKVStore | undefined = undefined init(context: Context) { // 定义数据库初始化需要的字段 const kvManagerConfig: distributedKVStore.KVManagerConfig = { context: context, bundleName: 'com.example.snailmall' } try { this.kvManager = distributedKVStore.createKVManager(kvManagerConfig) console.log('success create kvManager') } catch (e) { let error = e as BusinessError console.log(`failed to create kvManager, ${error.name}-${error.message}`) } } createStore(storeId: string) { try { // 定义store参数 const options: distributedKVStore.Options = { createIfMissing: true, encrypt: false, backup: false, autoSync: false, // kvStoreType不填时,默认创建多设备协同数据库 kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION, // 多设备协同数据库 kvStoreType:distributedKVStore.KVStoreType.DEVICE_COLLABORATION securityLevel: distributedKVStore.SecurityLevel.S1 } this.kvManager?.getKVStore<distributedKVStore.SingleKVStore>(storeId, options, (err, store: distributedKVStore.SingleKVStore) => { if (err) { console.log('create kvStore failed') return } console.log('create kvStore success') this.kvStore = store }) } catch (e) { let error = e as BusinessError console.log(`failed to create kvStore, ${error.name}-${error.message}`) } } putData(key: string, value: string) { try { this.kvStore?.put(key, value, (err) => { if (err) { console.log(`kvStore insert data failed, ${err.name}-${err.code}`) return } console.log('kvStore insert data success') }) } catch (e) { let error = e as BusinessError console.log(`kvStore insert data failed, ${error.name}-${error.message}`) } } getData(key: string) { return new Promise((resolve: (value: string | number | boolean | Uint8Array) => void, reject: (value?: string) => void) => { this.kvStore?.get(key, (err, data) => { if (err) { console.log(`kvStore get data failed, ${err.name}-${err.code}`) reject('kvStore get data failed') return } console.log(`kvStore get data success, ${data}`) resolve(data) }) }) } deleteData(key: string) { this.kvStore?.delete(key, (err, data) => { if (err) { console.log(`kvStore get data failed, ${err.name}-${err.code}`) return } console.log(`kvStore get data success, ${data}`) }) } } const kvStore = new KVStore() export default kvStore

1kvStore insert data success 2kvStore get data success, Lining 3kvStore get data success, {"id":1,"name":"Wyoming"}
kvStore insert data success kvStore get data success, Lining kvStore get data success, {"id":1,"name":"Wyoming"}

Powered By 可尔物语

浙ICP备11005866号-12