业务数据存储

基于 Prefersence 内存存储的业务数据存储模块,支持的数据类型包含:number、string、boolean、Array<number>、Array<boolean>、Array<Uint8Array> 和 Uint8Array。

创建业务数据表

let mpData: MPData = MPData.createData('xxx')

增删改查

let mpData: MPData = MPData.createData('xxx')
mpData.put(key,value)
mpData.putObject(key,object)

mpData.delete(key)

mpData.get(key):preferences.ValueType
mpData.getAll(): [string,string[]]

同步

不调用同步接口时,数据信息存储到内存中;调用同步接口后,数据存储到序列化文件中。

mpData.synchronize()

清空数据

mpData.clear()

全局用户存储

增删改查

import { MPData } from "@mpaas/datacenter"

// 存储
// 基本数据类型
MPData.put(key, value).then().catch() // 默认全局存储
MPData.put(key, value,{userId:""}).then().cantch //用户关联数据存储
MPData.put(key, value,{encrypt: true}).then().catch() // 使用加密存储

// object
MPData.putObject(key, value).then().catch()
MPData.putObject(key, value,{userId:""}).then().cantch //用户关联数据存储
MPData.putObject(key, value,{encrypt: true}).then().catch() // 使用加密存储

// 批量操作
MPData.putBatch(values).then().catch()
MPData.putBatch(values,{userId:""}).then().cantch //用户关联数据存储
MPData.putBatch(values,{encrypt: true}).then().catch() // 使用加密存储

// 取值
MPData.get(key).then().catch() 
MPData.get(key,{userId:""}).then().cantch //用户关联数据
MPData.get(key,{encrypt: true}).then().catch() // 使用加密

// 删除
await MPData.delete(key)
await MPData.delete(key,{userId : "" })
await MPData.delete(key,{encrypt:true})
重要

传入的可选参数要保持一致。

重置数据

// 重置
await MPData.resetGlobalStore() // 全局数据
await MPData.resetUserStore(userId) // 用户数据

查询指定参数下所有数据

// 获取所有数据
await MPData.getAllData() // 全局数据
await MPData.getAllData(userId) //用户数据

关闭链接

建议使用完数据后关闭数据库链接,鸿蒙底层限制最大并发 8 个数据库链接池,超过后会有异常。

await MPData.close() 

获取指定前缀的数据数组

MPData.getEntries(keyPrefix).then((data)=>{
	//data 是一个json串 
}).catch()

MPData.getEntries(keyPrefix,{userId:""}).then().cantch //用户关联数据
MPData.getEntries(keyPrefix,{encrypt: true}).then().catch() // 使用加密

文件存储

 let fileUtil = new MPFile()
// 存储文件 encrypt:是否加密
public async saveFile(fileName: string , content: string, encrypt: boolean = false)
// 获取文件内容 
public async getFileContent(fileName: string, encrypt: boolean = false) 
// 删除文件
public async removeFile(fileName: string) 

数据集操作

  1. 调用 getResult 获取数据集。

    // 获取指定前缀的数据集
    MPData.getResult(keyPrefix).then().catch()
    MPData.getResult(keyPrefix,{userId:""}).then().catch()
    MPData.getResult(keyPrefix,{encrypt:true}).then().catch()
  2. 调用下方 API。其中,参数要保持一致。

    MPData.getCount() 
    
    当前游标位置
    MPData.getPosition()
    
    游标移动
    MPData.moveToFirst()
    
    MPData.moveToNext()
    
    MPData.moveToPrevious()
    
    MPData.move(offset)
    
    MPData.moveToPosition(position)
    
    游标位置判断
    MPData.isFirst()
    
    MPData.isLast()
    
    MPData.isBeforeFirst()
    
    MPData.isAfterLast()
    
    获取当前游标对应的数据
    MPData.getEntry()