# 轻量级存储 轻量级数据库为应用提供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实例,用于数据操作。 此方法为异步方法。 **参数:**

参数名

类型

必填

说明

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单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。 此方法为异步方法。 **参数:**

参数名

类型

必填

说明

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单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。 此方法为异步方法。 **参数:**

参数名

类型

必填

说明

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\) 获取键对应的值,如果值为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\) 首先获取指定文件对应的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\) 检查存储对象是否包含名为给定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\) 从此对象中删除名为给定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\) 将当前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\) 清除此存储对象中的所有存储。 此方法为异步方法。 **参数:**

参数名

类型

必填

说明

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\#onChange会被回调。

参数名

类型

说明

type

'change'

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

callback

Callback<StorageObserver>

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

**示例:** ``` var observer = function (data) { console.info(data); }; store.on('change', observer); ``` ## off\(type: 'change', callback: Callback\) 监听者类需要实现StorageObserver接口,当不再进行数据监听时,使用此接口取消监听。

参数名

类型

说明

type

'change'

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

callback

Callback<StorageObserver>

需要取消的回调对象实例

**示例:** ``` var observer = function (data) { console.info(data); }; store.off('change', observer); ``` ## 事件 ### change **表 1** 回调函数的参数说明(可选,如不涉及可删除)

参数名

类型

说明

observer

StorageObserver

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

## StorageObserver

名称

参数类型

必填

说明

key

string

变更的数据内容