轻量级存储

轻量级数据库为应用提供key-value键值型的文件数据处理能力,支持应用对数据进行轻量级存储及查询。数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型。

导入模块

import data_storage from '@ohos.data.storage';

权限

属性

名称

参数类型

可读

可写

说明

MAX_KEY_LENGTH

string

key的最大长度限制,大小为80字节。

MAX_VALUE_LENGTH

string

string类型value的最大长度限制,大小为8192字节。

方法

getStorageSync(path: string)

读取指定文件,将数据加载到Storage实例,用于数据操作。

此方法为同步方法。

参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

返回值:

类型

说明

Storage

获取到要操作的Storage实例,用于进行数据库的操作。

示例:

const PATH = '/data/accounts/account_0/appdata/com.example.myapplication/database/{storage_name}';
let store = data_storage.getStorageSync(PATH);

getStorage(path: string, callback: AsyncCallback<Storage>)

读取指定文件,将数据加载到Storage实例,用于数据操作。

此方法为异步方法。

参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

callback

AsyncCallback<Storage>

回调函数。

返回值:

类型

说明

void

示例:

data_storage.getStorage(PATH, function(err, data) {    
   strore = data;
});

getStorage(path: string)

读取指定文件,将数据加载到Storage实例,用于数据操作。

此方法为异步方法。

参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

返回值:

类型

说明

Promise<Storage>

Promise实例,用于异步获取结果。

示例:

const promise = data_storage.getStorage(PATH);
promise.then((data) => {   
   data.clearSync();
   }).catch((err) => {
});

deleteStorageSync(path: string)

从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。

此方法为同步方法。

参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

返回值:

类型

说明

void

示例:

const PATH = '/data/accounts/account_0/appdata/com.example.myapplication/database/{storage_name}';
data_storage.deleteStorageSync(PATH);

deleteStorage(path: string, callback: AsyncCallback<Storage>)

从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。

此方法为异步方法。

参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

callback

AsyncCallback<Storage>

回调函数。

返回值:

类型

说明

void

示例:

data_storage.deleteStorage(PATH, function(err, data) {    
});

deleteStorage(path: string)

从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。

此方法为异步方法。

参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

返回值:

类型

说明

Promise<void>

Promise实例,用于异步获取结果。

示例:

const promise = data_storage.deleteStorage(PATH);
promise.then((data) => {   
    }).catch((err) => {
});

removeStorageFromCacheSync(path: string)

从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。

此方法为同步方法。

参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

返回值:

类型

说明

void

示例:

const PATH = '/data/accounts/account_0/appdata/com.example.myapplication/database/{storage_name}';
data_storage.removeStorageFromCacheSync(PATH);

removeStorageFromCache(path: string, callback: AsyncCallback<Storage>)

从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。

此方法为异步方法。

参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

callback

AsyncCallback<Storage>

回调函数。

返回值:

类型

说明

void

示例:

data_storage.removeStorageFromCache(PATH, function(err, data) {
});

removeStorageFromCache(path: string)

从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。

此方法为异步方法。

参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

返回值:

类型

说明

Promise<void>

Promise实例,用于异步获取结果。

示例:

const promise = data_storage.removeStorageFromCache(PATH);
promise.then((data) => {   
     }).catch((err) => {
});

附录

Storage

提供获取和修改存储数据的接口。

方法

getSync(key: string, defValue: ValueType)

获取键对应的值,如果值为null或者非默认值类型,返默认数据

此方法为同步方法。

参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

defValue

ValueType

给定key的存储不存在,则要返回的默认值。支持number 、 string 、boolean。

返回值:

类型

说明

ValueType

键对应的值,如果值为null或者非默认值类型,返默认数据

示例:

let ret = store.getSync(key, ‘defValue’);

get(key: string, defValue: ValueType, callback: AsyncCallback<ValueType>)

获取键对应的值,如果值为null或者非默认值类型,返默认数据。

此方法为异步方法。

参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

defValue

ValueType

默认返回值。支持number 、 string 、boolean。

callback

AsyncCallback<ValueType>

回调函数。

返回值:

类型

说明

void

示例:

store.get(key, 'test', function(err, data) {    
      console.info(data);
});

get(key: string, defValue: ValueType)

获取键对应的值,如果值为null或者非默认值类型,返默认数据。

此方法为异步方法。

参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

defValue

ValueType

默认返回值。支持number 、 string 、boolean。

返回值:

类型

说明

Promise<ValueType>

Promise实例,用于异步获取结果。

示例:

const promise = store.get(key, 'test');
promise.then((data) => {   
    console.info(data);
    }).catch((err) => {
});

putSync(key: string, value: ValueType)

首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。

此方法为同步方法。

参数:

参数名

类型

必填

说明

key

string

要修改的存储的key。它不能为空。

value

ValueType

存储的新值。支持number 、 string 、boolean。

返回值:

类型

说明

void

示例:

let data = store.putSync(key, ‘defValue’);

put(key: string, value: ValueType, callback: AsyncCallback<void>)

首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。

此方法为异步方法。

参数:

参数名

类型

必填

说明

key

string

要修改的存储的key。它不能为空。

value

ValueType

存储的新值。支持number 、 string 、boolean。

callback

AsyncCallback<void>

回调函数。

返回值:

类型

说明

void

示例:

store.put(key, 'test', function(err, data) {    
});

put(key: string, value: ValueType)

首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。

此方法为异步方法。

参数:

参数名

类型

必填

说明

key

string

要修改的存储的key。它不能为空。

value

ValueType

存储的新值。支持number 、 string 、boolean。

返回值:

类型

说明

Promise<void>

Promise实例,用于异步处理。

示例:

const promise = store.put(key, 'test');
promise.then((data) => {   
     }).catch((err) => {
});

hasSync(key: string)

检查存储对象是否包含名为给定key的存储。

此方法为同步方法。

参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

返回值:

类型

说明

boolean

true 表示存在,false表示不存在

示例:

let ret = store.hasSync(key);

has(key: string, callback: AsyncCallback<boolean>)

检查存储对象是否包含名为给定key的存储。

此方法为异步方法。

参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

callback

AsyncCallback<boolean>

回调函数。

返回值:

类型

说明

boolean

true 表示存在,false表示不存在。

示例:

store.has(key, function(err, data) {   
       console.info(data);
});

has(key: string)

检查存储对象是否包含名为给定key的存储。

此方法为异步方法。

参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

返回值:

类型

说明

Promise<boolean>

Promise实例,用于异步处理。

示例:

const promise = store.has(key);
promise.then((data) => {   
    console.info(data);
    }).catch((err) => {
});

deleteSync(key: string)

从此对象中删除名为给定key的存储。

此方法为同步方法。

参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

返回值:

类型

说明

void

示例:

store.deleteSync(key);

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

从此对象中删除名为给定key的存储。

此方法为异步方法。

参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

callback

AsyncCallback<void>

回调函数。

返回值:

类型

说明

void

示例:

store.delete(key, function(err, data) {   
});

delete(key: string)

从此对象中删除名为给定key的存储。

此方法为异步方法。

参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

返回值:

类型

说明

Promise<void>

Promise实例,用于异步处理。

示例:

const promise = store.delete(key);
promise.then((data) => {   
    }).catch((err) => {
});

flushSync()

将当前storage对象中的修改保存到当前的storage,并同步存储到文件中。

此方法为同步方法。

参数:

参数名

类型

必填

说明

返回值:

类型

说明

void

示例:

store.flushSync();

flush(callback: AsyncCallback<void>)

将当前storage对象中的修改保存到当前的storage,并异步存储到文件中。

此方法为异步方法。

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

回调函数。

返回值:

类型

说明

void

示例:

store.flush(function(err, data) {   
});

flush()

将当前storage对象中的修改保存到当前的storage,并异步存储到文件中。

此方法为异步方法。

参数:

参数名

类型

必填

说明

返回值:

类型

说明

Promise<void>

Promise实例,用于异步处理。

示例:

const promise = store.flush();
promise.then((data) => {   
    }).catch((err) => {
});

clearSync()

清除此存储对象中的所有存储。

此方法为同步方法。

参数:

参数名

类型

必填

说明

返回值:

类型

说明

void

示例:

store.clearSync();

clear(callback: AsyncCallback<void>)

清除此存储对象中的所有存储。

此方法为异步方法。

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

回调函数。

返回值:

类型

说明

void

示例:

store.clear(function(err, data) {   
});

clear()

清除此存储对象中的所有存储。

此方法为异步方法。

参数:

参数名

类型

必填

说明

返回值:

类型

说明

Promise<void>

Promise实例,用于异步处理。

示例:

const promise = store.clear();
promise.then((data) => {   
    }).catch((err) => {
});

on(type: 'change', callback: Callback<StorageObserver>)

监听者类需要实现StorageObserver接口,当数据发生改变时,监听者的 StorageObserver#onChange会被回调。

参数名

类型

说明

type

'change'

事件类型,表示数据变更。

callback

Callback<StorageObserver>

当数据发生改变时,监听者的onChange会被回调。

示例:

var observer = function (data) {  
  console.info(data);  
  };
store.on('change', observer);

off(type: 'change', callback: Callback<StorageObserver>)

监听者类需要实现StorageObserver接口,当不再进行数据监听时,使用此接口取消监听。

参数名

类型

说明

type

'change'

事件类型,表示数据变更。

callback

Callback<StorageObserver>

需要取消的回调对象实例

示例:

var observer = function (data) {  
  console.info(data);  
  };
store.off('change', observer);

事件

change

表 1 回调函数的参数说明(可选,如不涉及可删除)

参数名

类型

说明

observer

StorageObserver

当有数据变化时会收到此回调

StorageObserver

名称

参数类型

必填

说明

key

string

变更的数据内容