Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
(_灬幸福相伴
Docs
提交
2604130f
D
Docs
项目概览
(_灬幸福相伴
/
Docs
与 Fork 源项目一致
Fork自
OpenHarmony / Docs
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
2604130f
编写于
12月 02, 2022
作者:
O
openharmony_ci
提交者:
Gitee
12月 02, 2022
浏览文件
操作
浏览文件
下载
差异文件
!12088 modify database-relational-guidelines
Merge pull request !12088 from lihuihui/master
上级
ae7bbfee
19c766b8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
104 addition
and
102 deletion
+104
-102
zh-cn/application-dev/database/database-relational-guidelines.md
...pplication-dev/database/database-relational-guidelines.md
+104
-102
未找到文件。
zh-cn/application-dev/database/database-relational-guidelines.md
浏览文件 @
2604130f
...
...
@@ -17,8 +17,8 @@
| 接口名 | 描述 |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| getRdbStore
(context: Context, config: StoreConfig, version: number): Promise
<
RdbStore
>
| 获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,使用Promise异步回调。
<br/>
-context:应用程序或功能的上下文。
<br/>
-config:与此RDB存储相关的数据库配置。
<br/>
-version:数据库版本
。 |
| deleteRdbStore(context: Context, name: string): Promise
<
void
>
| 使用指定的数据库文件配置删除数据库,使用Promise异步回调。
<br/>
-context:应用程序或功能的上下文。
<br/>
-name:数据库名称。 |
| getRdbStore
V9(context: Context, config: StoreConfigV9, version: number): Promise
<
RdbStoreV9
>
| 获得一个相关的RdbStoreV9,操作关系型数据库,用户可以根据自己的需求配置RdbStoreV9的参数,然后通过RdbStoreV9调用相关接口可以执行相关的数据操作,使用Promise异步回调。
<br/>
-context:应用程序或功能的上下文。
<br/>
-config:与此RDB存储相关的数据库配置。
<br/>
-version:数据库版本。目前暂不支持通过version自动识别数据库升级降级操作,只能由开发者自行维护
。 |
| deleteRdbStore
V9
(context: Context, name: string): Promise
<
void
>
| 使用指定的数据库文件配置删除数据库,使用Promise异步回调。
<br/>
-context:应用程序或功能的上下文。
<br/>
-name:数据库名称。 |
### 数据库的增删改查
...
...
@@ -31,31 +31,31 @@
**表2**
数据库插入API
| 类名 | 接口名 | 描述 |
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore | insert(table: string, values: ValuesBucket): Promise
<
number
>
| 向目标表中插入一行数据,使用Promise异步回调。
<br>
如果操作成功,返回行ID;否则返回-1。
<br/>
-table:指定的目标表名。
<br/>
-values:表示要插入到表中的数据行。 |
| 类名
| 接口名 | 描述 |
| --------
--
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore
V9
| insert(table: string, values: ValuesBucket): Promise
<
number
>
| 向目标表中插入一行数据,使用Promise异步回调。
<br>
如果操作成功,返回行ID;否则返回-1。
<br/>
-table:指定的目标表名。
<br/>
-values:表示要插入到表中的数据行。 |
-
**更新**
调用更新接口,传入要更新的数据,并通过RdbPredicates指定更新条件。该接口的返回值表示更新操作影响的行数。如果更新失败,则返回0。
调用更新接口,传入要更新的数据,并通过RdbPredicates
V9
指定更新条件。该接口的返回值表示更新操作影响的行数。如果更新失败,则返回0。
**表3**
数据库更新API
| 类名 | 接口名 | 描述 |
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore
| update(values: ValuesBucket, predicates: RdbPredicates): Promise
<
number
>
| 根据RdbPredicates的指定实例对象更新数据库中的数据,使用Promise异步回调。
<br>
返回受影响的行数。
<br/>
-values:以ValuesBucket存储的要更新的数据。
<br/>
-predicates:表示RdbPredicates
的实例对象指定的更新条件。 |
| 类名
| 接口名 | 描述 |
| --------
--
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore
V9 | update(values: ValuesBucket, predicates: RdbPredicatesV9): Promise
<
number
>
| 根据RdbPredicatesV9的指定实例对象更新数据库中的数据,使用Promise异步回调。
<br>
返回受影响的行数。
<br/>
-values:以ValuesBucket存储的要更新的数据。
<br/>
-predicates:表示RdbPredicatesV9
的实例对象指定的更新条件。 |
-
**删除**
调用删除接口,通过RdbPredicates指定删除条件。该接口的返回值表示删除的数据行数,可根据此值判断是否删除成功。如果删除失败,则返回0。
调用删除接口,通过RdbPredicates
V9
指定删除条件。该接口的返回值表示删除的数据行数,可根据此值判断是否删除成功。如果删除失败,则返回0。
**表4**
数据库删除API
| 类名
| 接口名
| 描述 |
| --------
| --
---------------------------------------------------------- | ------------------------------------------------------------ |
| RdbStore
| delete(predicates: RdbPredicates): Promise
<
number
>
| 根据RdbPredicates的指定实例对象从数据库中删除数据,使用Promise异步回调。
<br>
返回受影响的行数。
<br/>
-predicates:RdbPredicates
的实例对象指定的删除条件。 |
| 类名
| 接口名
| 描述 |
| --------
-- |
---------------------------------------------------------- | ------------------------------------------------------------ |
| RdbStore
V9 | delete(predicates: RdbPredicatesV9): Promise
<
number
>
| 根据RdbPredicatesV9的指定实例对象从数据库中删除数据,使用Promise异步回调。
<br>
返回受影响的行数。
<br/>
-predicates:RdbPredicatesV9
的实例对象指定的删除条件。 |
-
**查询**
...
...
@@ -67,32 +67,32 @@
**表5**
数据库查询API
| 类名
| 接口名 | 描述 |
|
-------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore | query(predicates: RdbPredicates, columns?: Array
<
string
>
): Promise
<
ResultSet
>
| 根据指定条件查询数据库中的数据,使用Promise异步回调。
<br/>
-predicates:表示RdbPredicates
的实例对象指定的查询条件。
<br/>
-columns:表示要查询的列。如果值为空,则查询应用于所有列。 |
| RdbStore | querySql(sql: string, bindArgs?: Array
<
ValueType
>
): Promise
<
ResultSet
>
| 根据指定SQL语句查询数据库中的数据,使用Promise异步回调。
<br/>
-sql:指定要查询的SQL语句。
<br/>
-bindArgs:SQL语句中参数的值。 |
| RdbStore | remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array
<
string
>
): Promise
<
ResultSet
>
| 根据指定条件查询指定远程设备数据库中的数据。使用Promise异步回调。
<br/>
-device:指定远程查询的设备networkId。
<br/>
-table:指定远程查询的表名。
<br/>
-predicates:表示RdbPredicates
的实例对象,指定查询的条件。
<br/>
-columns:表示要查询的列。如果值为空,则查询应用于所有列。 |
| 类名
| 接口名 | 描述 |
| --
-------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStoreV9 | query(predicates: RdbPredicatesV9, columns?: Array
<
string
>
): Promise
<
ResultSetV9
>
| 根据指定条件查询数据库中的数据,使用Promise异步回调。
<br/>
-predicates:表示RdbPredicatesV9
的实例对象指定的查询条件。
<br/>
-columns:表示要查询的列。如果值为空,则查询应用于所有列。 |
| RdbStoreV9 | querySql(sql: string, bindArgs?: Array
<
ValueType
>
): Promise
<
ResultSetV9
>
| 根据指定SQL语句查询数据库中的数据,使用Promise异步回调。
<br/>
-sql:指定要查询的SQL语句。
<br/>
-bindArgs:SQL语句中参数的值。 |
| RdbStoreV9 | remoteQuery(device: string, table: string, predicates: RdbPredicatesV9, columns: Array
<
string
>
): Promise
<
ResultSetV9
>
| 根据指定条件查询指定远程设备数据库中的数据。使用Promise异步回调。
<br/>
-device:指定远程查询的设备networkId。
<br/>
-table:指定远程查询的表名。
<br/>
-predicates:表示RdbPredicatesV9
的实例对象,指定查询的条件。
<br/>
-columns:表示要查询的列。如果值为空,则查询应用于所有列。 |
### 数据库谓词的使用
关系型数据库提供了用于设置数据库操作条件的谓词RdbPredicates,该类确定RDB中条件表达式的值是true还是false。
关系型数据库提供了用于设置数据库操作条件的谓词RdbPredicates
V9
,该类确定RDB中条件表达式的值是true还是false。
以下列举几个常用谓词,更多谓词的使用请见
[
关系型数据库谓词
](
../reference/apis/js-apis-data-rdb.md#rdbpredicates
)
。
**表6**
数据库谓词API
| 类名 | 接口名 | 描述 |
| ------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbPredicates
| equalTo(field: string, value: ValueType): RdbPredicates | 配置谓词以匹配数据字段为ValueType且值等于指定值的字段。
<br/>
-field:数据库表中的列名。
<br/>
-value:指示要与谓词匹配的值。
<br/>
-RdbPredicates
:返回与指定字段匹配的谓词。 |
| RdbPredicates
| notEqualTo(field: string, value: ValueType): RdbPredicates | 配置谓词以匹配数据字段为ValueType且值不等于指定值的字段。
<br/>
-field:数据库表中的列名。
<br/>
-value:指示要与谓词匹配的值。
<br/>
-RdbPredicates
:返回与指定字段匹配的谓词。 |
| RdbPredicates
| or(): RdbPredicates | 将或条件添加到谓词中。
<br/>
-RdbPredicates
:返回带有或条件的谓词。 |
| RdbPredicates
| and(): RdbPredicates | 向谓词添加和条件。
<br/>
-RdbPredicates
:返回带有和条件的谓词。 |
| RdbPredicates
| contains(field: string, value: string): RdbPredicates | 配置谓词以匹配数据字段为String且value包含指定值的字段。
<br/>
-field:数据库表中的列名。
<br/>
-value:指示要与谓词匹配的值。
<br/>
-RdbPredicates
:返回带有包含条件的谓词。 |
| 类名
| 接口名 | 描述 |
| -------------
--
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbPredicates
V9 | equalTo(field: string, value: ValueType): RdbPredicatesV9 | 配置谓词以匹配数据字段为ValueType且值等于指定值的字段。
<br/>
-field:数据库表中的列名。
<br/>
-value:指示要与谓词匹配的值。
<br/>
-RdbPredicatesV9
:返回与指定字段匹配的谓词。 |
| RdbPredicates
V9 | notEqualTo(field: string, value: ValueType): RdbPredicatesV9 | 配置谓词以匹配数据字段为ValueType且值不等于指定值的字段。
<br/>
-field:数据库表中的列名。
<br/>
-value:指示要与谓词匹配的值。
<br/>
-RdbPredicatesV9
:返回与指定字段匹配的谓词。 |
| RdbPredicates
V9 | or(): RdbPredicatesV9 | 将或条件添加到谓词中。
<br/>
-RdbPredicatesV9
:返回带有或条件的谓词。 |
| RdbPredicates
V9 | and(): RdbPredicatesV9 | 向谓词添加和条件。
<br/>
-RdbPredicatesV9
:返回带有和条件的谓词。 |
| RdbPredicates
V9 | contains(field: string, value: string): RdbPredicatesV9 | 配置谓词以匹配数据字段为String且value包含指定值的字段。
<br/>
-field:数据库表中的列名。
<br/>
-value:指示要与谓词匹配的值。
<br/>
-RdbPredicatesV9
:返回带有包含条件的谓词。 |
### 查询结果集的使用
关系型数据库提供了查询返回的结果集ResultSet,其指向查询结果中的一行数据,供用户对查询结果进行遍历和访问。
关系型数据库提供了查询返回的结果集ResultSet
V9
,其指向查询结果中的一行数据,供用户对查询结果进行遍历和访问。
更多结果集的接口使用,请见
[
结果集
](
../reference/apis/js-apis-data-resultset.md
)
。
...
...
@@ -101,14 +101,14 @@
**表7**
结果集API
| 类名
| 接口名
| 描述 |
| ---------
| ------------
---------------------------------------- | ------------------------------------------ |
| ResultSet
| goToFirstRow(): boolean
| 将结果集移动到第一行。 |
| ResultSet
| getString(columnIndex: number): string
| 获取当前行指定列的值,以String类型返回。 |
| ResultSet
| getBlob(columnIndex: number): Uint8Array
| 获取当前行指定列的值,以字节数组形式返回。 |
| ResultSet
| getDouble(columnIndex: number): number
| 获取当前行指定列的值,以double型返回。 |
| ResultSet | getLong(columnIndex: number): number | 获取当前行指定列的值,以Long形式返回。 |
| ResultSet
| close(): void
| 关闭结果集。 |
| 类名
| 接口名
| 描述 |
| ---------
-- |
---------------------------------------- | ------------------------------------------ |
| ResultSet
V9 | goToFirstRow(): boolean
| 将结果集移动到第一行。 |
| ResultSet
V9 | getString(columnIndex: number): string
| 获取当前行指定列的值,以String类型返回。 |
| ResultSet
V9 | getBlob(columnIndex: number): Uint8Array
| 获取当前行指定列的值,以字节数组形式返回。 |
| ResultSet
V9 | getDouble(columnIndex: number): number
| 获取当前行指定列的值,以double型返回。 |
| ResultSet
V9
| getLong(columnIndex: number): number | 获取当前行指定列的值,以Long形式返回。 |
| ResultSet
V9 | close(): void
| 关闭结果集。 |
...
...
@@ -116,16 +116,16 @@
> **说明:**
>
> - 在使用RdbStore的setDistributedTables、obtainDistributedTableName、sync、on、off接口时,需要请求相应的权限:ohos.permission.DISTRIBUTED_DATASYNC。
> - 在使用RdbStore
V9
的setDistributedTables、obtainDistributedTableName、sync、on、off接口时,需要请求相应的权限:ohos.permission.DISTRIBUTED_DATASYNC。
> - 使用分布式列表前,需要先建立设备间组网,具体接口及使用可见[设备管理](../reference/apis/js-apis-device-manager.md)。
**设置分布式列表**
**表8**
设置分布式列表
| 类名 | 接口名 | 描述 |
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore | setDistributedTables(tables: Array
\<
string>): Promise
\<
void> | 设置分布式列表,使用Promise异步回调。
<br/>
-tables:要设置的分布式列表表名。 |
| 类名
| 接口名 | 描述 |
| --------
--
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore
V9
| setDistributedTables(tables: Array
\<
string>): Promise
\<
void> | 设置分布式列表,使用Promise异步回调。
<br/>
-tables:要设置的分布式列表表名。 |
**根据本地表名获取指定远程设备的分布式表名**
...
...
@@ -133,33 +133,33 @@
**表9**
根据本地表名获取指定远程设备的分布式表名
| 类名 | 接口名 | 描述 |
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore | obtainDistributedTableName(device: string, table: string): Promise
\<
string> | 根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。
<br/>
-device:远程设备。
<br/>
-table:本地表名。 |
| 类名
| 接口名 | 描述 |
| --------
--
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore
V9
| obtainDistributedTableName(device: string, table: string): Promise
\<
string> | 根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。
<br/>
-device:远程设备。
<br/>
-table:本地表名。 |
**在设备之间同步数据**
**表10**
在设备之间同步数据
| 类名 | 接口名 | 描述 |
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore
| sync(mode: SyncMode, predicates: RdbPredicates
): Promise
\<
Array
\<
[string, number]>> | 在设备之间同步数据,使用Promise异步回调。
<br/>
-mode:指同步模式。SYNC_MODE_PUSH 表示数据从本地设备推送到远程设备;SYNC_MODE_PULL 表示数据从远程设备拉至本地设备。
<br/>
-predicates:约束同步数据和设备。
<br>
-string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。 |
| 类名
| 接口名 | 描述 |
| --------
--
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore
V9 | sync(mode: SyncMode, predicates: RdbPredicatesV9
): Promise
\<
Array
\<
[string, number]>> | 在设备之间同步数据,使用Promise异步回调。
<br/>
-mode:指同步模式。SYNC_MODE_PUSH 表示数据从本地设备推送到远程设备;SYNC_MODE_PULL 表示数据从远程设备拉至本地设备。
<br/>
-predicates:约束同步数据和设备。
<br>
-string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。 |
**注册数据库的观察者**
**表11**
注册数据库的观察者
| 类名 | 接口名 | 描述 |
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore
| on(event: 'dataChange', type: SubscribeType, observer: Callback
\<
Array
\<
string>>): void | 注册数据库的观察者。当分布式数据库中的数据发生更改时,将调用回调。
<br/>
-type:指在{@code SubscribeType}中定义的
订阅类型;SUBSCRIBE_TYPE_REMOTE 订阅远程数据更改。
<br/>
-observer:指分布式数据库中数据更改事件的观察者。 |
| 类名
| 接口名 | 描述 |
| --------
--
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore
V9 | on(event: 'dataChange', type: SubscribeType, observer: Callback
\<
Array
\<
string>>): void | 注册数据库的观察者。当分布式数据库中的数据发生更改时,将调用回调。
<br/>
-type:
订阅类型;SUBSCRIBE_TYPE_REMOTE 订阅远程数据更改。
<br/>
-observer:指分布式数据库中数据更改事件的观察者。 |
**从数据库中删除指定类型的指定观察者**
**表12**
从数据库中删除指定类型的指定观察者
| 类名 | 接口名 | 描述 |
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore
| off(event:'dataChange', type: SubscribeType, observer: Callback
\<
Array
\<
string>>): void; | 从数据库中删除指定类型的指定观察者,使用callback异步回调。
<br/>
-type:指在{@code SubscribeType}中定义的
订阅类型;SUBSCRIBE_TYPE_REMOTE 订阅远程数据更改。
<br/>
-observer:指已注册的数据更改观察者。 |
| 类名
| 接口名 | 描述 |
| --------
--
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore
V9 | off(event:'dataChange', type: SubscribeType, observer: Callback
\<
Array
\<
string>>): void; | 从数据库中删除指定类型的指定观察者,使用callback异步回调。
<br/>
-type:
订阅类型;SUBSCRIBE_TYPE_REMOTE 订阅远程数据更改。
<br/>
-observer:指已注册的数据更改观察者。 |
### 数据库的备份和恢复
...
...
@@ -167,17 +167,17 @@
**表13**
备份数据库
| 类名
| 接口名
| 描述 |
| --------
| ---------------
--------------------------------------------- | ------------------------------------------------------------ |
| RdbStore
| backup(destName: string): Promise
<
void
>
| 以指定名称备份数据库,使用Promise异步回调。
<br/>
-destName:指定数据库的备份文件名。 |
| 类名
| 接口名
| 描述 |
| --------
-- |
--------------------------------------------- | ------------------------------------------------------------ |
| RdbStore
V9 | backup(destName: string): Promise
<
void
>
| 以指定名称备份数据库,使用Promise异步回调。
<br/>
-destName:指定数据库的备份文件名。 |
**恢复**
**表14**
恢复数据库
| 类名
| 接口名
| 描述 |
| --------
| ---------------
--------------------------------------------- | ------------------------------------------------------------ |
| RdbStore
| restore(srcName: string): Promise
<
void
>
| 从指定的数据库备份文件恢复数据库,使用Promise异步回调。
<br/>
-srcName:指定数据库的备份文件名。 |
| 类名
| 接口名
| 描述 |
| --------
-- |
--------------------------------------------- | ------------------------------------------------------------ |
| RdbStore
V9 | restore(srcName: string): Promise
<
void
>
| 从指定的数据库备份文件恢复数据库,使用Promise异步回调。
<br/>
-srcName:指定数据库的备份文件名。 |
**事务**
...
...
@@ -185,9 +185,9 @@
| 类名 | 接口名 | 描述 |
| -------- | ----------------------- | --------------------------------- |
| RdbStore | beginTransaction(): void | 在开始执行SQL语句之前,开始事务。 |
| RdbStore | commit(): void | 提交已执行的SQL语句。 |
| RdbStore | rollBack(): void | 回滚已经执行的SQL语句。 |
| RdbStore
V9
| beginTransaction(): void | 在开始执行SQL语句之前,开始事务。 |
| RdbStore
V9
| commit(): void | 提交已执行的SQL语句。 |
| RdbStore
V9
| rollBack(): void | 回滚已经执行的SQL语句。 |
## 开发步骤
...
...
@@ -206,12 +206,13 @@
// 获取context
import featureAbility from '@ohos.ability.featureAbility'
let context = featureAbility.getContext()
const CREATE_TABLE_TEST = "CREATE TABLE IF NOT EXISTS test (" + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "name TEXT NOT NULL, " + "age INTEGER, " + "salary REAL, " + "blobType BLOB)";
const STORE_CONFIG = { name: "RdbTest.db" }
data_rdb.getRdbStore(context, STORE_CONFIG, 1, function (err, rdbStore) {
rdbStore.executeSql(CREATE_TABLE_TEST)
const STORE_CONFIGV9 = { name: "RdbTest.db",
securityLevel: data_rdb.SecurityLevel.S1}
data_rdb.getRdbStoreV9(context, STORE_CONFIGV9, 1, function (err, rdbStoreV9) {
rdbStoreV9.executeSql(CREATE_TABLE_TEST)
console.info('create table done.')
})
```
...
...
@@ -226,15 +227,16 @@
context = this.context
}
}
const CREATE_TABLE_TEST = "CREATE TABLE IF NOT EXISTS test (" + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "name TEXT NOT NULL, " + "age INTEGER, " + "salary REAL, " + "blobType BLOB)";
const STORE_CONFIG = { name: "rdbstore.db" }
data_rdb.getRdbStore(context, STORE_CONFIG, 1, function (err, rdbStore) {
rdbStore.executeSql(CREATE_TABLE_TEST)
const STORE_CONFIGV9 = { name: "rdbstore.db",
securityLevel: data_rdb.SecurityLevel.S1}
data_rdb.getRdbStoreV9(context, STORE_CONFIGV9, 1, function (err, rdbStoreV9) {
rdbStoreV9.executeSql(CREATE_TABLE_TEST)
console.info('create table done.')
})
```
```
2. 插入数据。
...
...
@@ -247,7 +249,7 @@
```
js
var u8 = new Uint8Array([1, 2, 3])
const valueBucket = { "name": "Tom", "age": 18, "salary": 100.5, "blobType": u8 }
let insertPromise = rdbStore.insert("test", valueBucket)
let insertPromise = rdbStore
V9
.insert("test", valueBucket)
```
3. 查询数据。
...
...
@@ -261,17 +263,17 @@
示例代码如下:
```
js
let predicates
= new data_rdb.RdbPredicates
("test");
predicates.equalTo("name", "Tom")
let promisequery = rdbStore
.query(predicates
)
promisequery.then((resultSet) => {
resultSet.goToFirstRow()
const id = resultSet
.getLong(resultSet
.getColumnIndex("id"))
const name = resultSet
.getString(resultSet
.getColumnIndex("name"))
const age = resultSet
.getLong(resultSet
.getColumnIndex("age"))
const salary = resultSet
.getDouble(resultSet
.getColumnIndex("salary"))
const blobType = resultSet
.getBlob(resultSet
.getColumnIndex("blobType"))
resultSet.close()
let predicates
V9 = new data_rdb.RdbPredicatesV9
("test");
predicates
V9
.equalTo("name", "Tom")
let promisequery = rdbStore
V9.query(predicatesV9
)
promisequery.then((resultSet
V9
) => {
resultSet
V9
.goToFirstRow()
const id = resultSet
V9.getLong(resultSetV9
.getColumnIndex("id"))
const name = resultSet
V9.getString(resultSetV9
.getColumnIndex("name"))
const age = resultSet
V9.getLong(resultSetV9
.getColumnIndex("age"))
const salary = resultSet
V9.getDouble(resultSetV9
.getColumnIndex("salary"))
const blobType = resultSet
V9.getBlob(resultSetV9
.getColumnIndex("blobType"))
resultSet
V9
.close()
})
```
...
...
@@ -299,7 +301,7 @@
context.requestPermissionsFromUser(['ohos.permission.DISTRIBUTED_DATASYNC'], 666, function (result) {
console.info(
`result.requestCode=${result.requestCode}`
)
})
let promise = rdbStore.setDistributedTables(["test"])
let promise = rdbStore
V9
.setDistributedTables(["test"])
promise.then(() => {
console.info("setDistributedTables success.")
}).catch((err) => {
...
...
@@ -318,9 +320,9 @@
示例代码如下:
```
js
let predicate
= new data_rdb.RdbPredicates
('test')
predicate.inDevices(['12345678abcde'])
let promise = rdbStore
.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicate
)
let predicate
V9 = new data_rdb.RdbPredicatesV9
('test')
predicate
V9
.inDevices(['12345678abcde'])
let promise = rdbStore
V9.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicateV9
)
promise.then((result) => {
console.log('sync done.')
for (let i = 0; i < result.length; i++) {
...
...
@@ -345,9 +347,9 @@
console.log('device=' + device[i] + 'data changed')
}
}
try {
rdbStore.on('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
rdbStore
V9
.on('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
} catch (err) {
console.log('register observer failed')
}
...
...
@@ -362,8 +364,8 @@
示例代码如下:
```
js
let tableName = rdbStore.obtainDistributedTableName(deviceId, "test");
let resultSet
= rdbStore
.querySql("SELECT * FROM " + tableName)
let tableName = rdbStore
V9
.obtainDistributedTableName(deviceId, "test");
let resultSet
V9 = rdbStoreV9
.querySql("SELECT
*
FROM " + tableName)
```
8. 远程查询。
...
...
@@ -376,17 +378,17 @@
示例代码如下:
```
js
let
rdbPredicate
=
new
data_rdb
.
RdbPredicates
(
'
employee
'
)
predicates
.
greaterThan
(
"
id
"
,
0
)
let
promiseQuery
=
rdbStore
.
remoteQuery
(
'
12345678abcde
'
,
'
employee
'
,
rdbPredicate
)
promiseQuery
.
then
((
resultSet
)
=>
{
while
(
resultSet
.
goToNextRow
())
{
let
idx
=
resultSet
.
getLong
(
0
);
let
name
=
resultSet
.
getString
(
1
);
let
age
=
resultSet
.
getLong
(
2
);
let rdbPredicate
V9 = new data_rdb.RdbPredicatesV9
('employee')
predicates
V9
.greaterThan("id", 0)
let promiseQuery = rdbStore
V9.remoteQuery('12345678abcde', 'employee', rdbPredicateV9
)
promiseQuery.then((resultSet
V9
) => {
while (resultSet
V9
.goToNextRow()) {
let idx = resultSet
V9
.getLong(0);
let name = resultSet
V9
.getString(1);
let age = resultSet
V9
.getLong(2);
console.info(idx + " " + name + " " + age);
}
resultSet
.
close
();
resultSet
V9
.close();
}).catch((err) => {
console.info("failed to remoteQuery, err: " + err)
})
...
...
@@ -399,7 +401,7 @@
示例代码如下:
```
js
let promiseBackup = rdbStore.backup("dbBackup.db")
let promiseBackup = rdbStore
V9
.backup("dbBackup.db")
promiseBackup.then(() => {
console.info('Backup success.')
}).catch((err) => {
...
...
@@ -411,7 +413,7 @@
示例代码如下:
```
js
let promiseRestore = rdbStore.restore("dbBackup.db")
let promiseRestore = rdbStore
V9
.restore("dbBackup.db")
promiseRestore.then(() => {
console.info('Restore success.')
}).catch((err) => {
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录