diff --git a/zh-cn/application-dev/database/database-relational-guidelines.md b/zh-cn/application-dev/database/database-relational-guidelines.md index 7c2cb97f3eab54bb3e8db5f746d32ab408474306..1ad02f9ad5aff7278910260bd21bfe9b3c282c4b 100644 --- a/zh-cn/application-dev/database/database-relational-guidelines.md +++ b/zh-cn/application-dev/database/database-relational-guidelines.md @@ -7,7 +7,7 @@ ## 接口说明 -以下是关系型数据库的常用接口说明,大部分为异步接口。异步接口均有callback和Promise两种返回形式,下表均以Promise形式为例,更多接口及使用方式请见[关系型数据库](../reference/apis/js-apis-data-rdb.md)。 +以下是关系型数据库的常用接口说明,大部分为异步接口。异步接口均有callback和Promise两种返回形式,下表均以Promise形式为例,更多接口及使用方式请见[关系型数据库](../reference/apis/js-apis-data-relationalStore.md)。 ### 数据库的创建和删除 @@ -17,8 +17,8 @@ | 接口名 | 描述 | | ------------------------------------------------------------ | ------------------------------------------------------------ | -| getRdbStoreV9(context: Context, config: StoreConfigV9, version: number): Promise<RdbStoreV9> | 获得一个相关的RdbStoreV9,操作关系型数据库,用户可以根据自己的需求配置RdbStoreV9的参数,然后通过RdbStoreV9调用相关接口可以执行相关的数据操作,使用Promise异步回调。
-context:应用程序或功能的上下文。
-config:与此RDB存储相关的数据库配置。
-version:数据库版本。目前暂不支持通过version自动识别数据库升级降级操作,只能由开发者自行维护。 | -| deleteRdbStoreV9(context: Context, name: string): Promise<void> | 使用指定的数据库文件配置删除数据库,使用Promise异步回调。
-context:应用程序或功能的上下文。
-name:数据库名称。 | +| getRdbStore(context: Context, config: StoreConfig): Promise<RdbStore> | 获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,使用Promise异步回调。
-context:应用上下文。
-config:与此RDB存储相关的数据库配置。 | +| deleteRdbStore(context: Context, name: string): Promise<void> | 使用指定的数据库文件配置删除数据库,使用Promise异步回调。
-context:应用上下文。
-name:数据库名称。 | ### 数据库的增删改查 @@ -33,29 +33,29 @@ | 类名 | 接口名 | 描述 | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | - | RdbStoreV9 | insert(table: string, values: ValuesBucket): Promise<number> | 向目标表中插入一行数据,使用Promise异步回调。
如果操作成功,返回行ID;否则返回-1。
-table:指定的目标表名。
-values:表示要插入到表中的数据行。 | + | RdbStore | insert(table: string, values: ValuesBucket): Promise<number> | 向目标表中插入一行数据,使用Promise异步回调。
如果操作成功,返回行ID;否则返回-1。
-table:指定的目标表名。
-values:表示要插入到表中的数据行。 | - **更新** - 调用更新接口,传入要更新的数据,并通过RdbPredicatesV9指定更新条件。该接口的返回值表示更新操作影响的行数。如果更新失败,则返回0。 + 调用更新接口,传入要更新的数据,并通过RdbPredicates指定更新条件。该接口的返回值表示更新操作影响的行数。如果更新失败,则返回0。 **表3** 数据库更新API | 类名 | 接口名 | 描述 | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | - | RdbStoreV9 | update(values: ValuesBucket, predicates: RdbPredicatesV9): Promise<number> | 根据RdbPredicatesV9的指定实例对象更新数据库中的数据,使用Promise异步回调。
返回受影响的行数。
-values:以ValuesBucket存储的要更新的数据。
-predicates:表示RdbPredicatesV9的实例对象指定的更新条件。 | + | RdbStore | update(values: ValuesBucket, predicates: RdbPredicates): Promise<number> | 根据RdbPredicates的指定实例对象更新数据库中的数据,使用Promise异步回调。
返回受影响的行数。
-values:以ValuesBucket存储的要更新的数据。
-predicates:表示RdbPredicates的实例对象指定的更新条件。 | - **删除** - 调用删除接口,通过RdbPredicatesV9指定删除条件。该接口的返回值表示删除的数据行数,可根据此值判断是否删除成功。如果删除失败,则返回0。 + 调用删除接口,通过RdbPredicates指定删除条件。该接口的返回值表示删除的数据行数,可根据此值判断是否删除成功。如果删除失败,则返回0。 **表4** 数据库删除API | 类名 | 接口名 | 描述 | | ---------- | ---------------------------------------------------------- | ------------------------------------------------------------ | - | RdbStoreV9 | delete(predicates: RdbPredicatesV9): Promise<number> | 根据RdbPredicatesV9的指定实例对象从数据库中删除数据,使用Promise异步回调。
返回受影响的行数。
-predicates:RdbPredicatesV9的实例对象指定的删除条件。 | + | RdbStore | delete(predicates: RdbPredicates): Promise<number> | 根据RdbPredicates的指定实例对象从数据库中删除数据,使用Promise异步回调。
返回受影响的行数。
-predicates:RdbPredicates的实例对象指定的删除条件。 | - **查询** @@ -66,35 +66,34 @@ **表5** 数据库查询API - -| 类名 | 接口名 | 描述 | -| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| RdbStoreV9 | query(predicates: RdbPredicatesV9, columns?: Array<string>): Promise<ResultSetV9> | 根据指定条件查询数据库中的数据,使用Promise异步回调。
-predicates:表示RdbPredicatesV9的实例对象指定的查询条件。
-columns:表示要查询的列。如果值为空,则查询应用于所有列。 | -| RdbStoreV9 | querySql(sql: string, bindArgs?: Array<ValueType>): Promise<ResultSetV9> | 根据指定SQL语句查询数据库中的数据,使用Promise异步回调。
-sql:指定要查询的SQL语句。
-bindArgs:SQL语句中参数的值。 | -| RdbStoreV9 | remoteQuery(device: string, table: string, predicates: RdbPredicatesV9, columns: Array<string>): Promise<ResultSetV9> | 根据指定条件查询指定远程设备数据库中的数据。使用Promise异步回调。
-device:指定远程查询的设备networkId。
-table:指定远程查询的表名。
-predicates:表示RdbPredicatesV9的实例对象,指定查询的条件。
-columns:表示要查询的列。如果值为空,则查询应用于所有列。 | + | 类名 | 接口名 | 描述 | + | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | + | RdbStore | query(predicates: RdbPredicates, columns?: Array<string>): Promise<ResultSet> | 根据指定条件查询数据库中的数据,使用Promise异步回调。
-predicates:表示RdbPredicates的实例对象指定的查询条件。
-columns:表示要查询的列。如果值为空,则查询应用于所有列。 | + | RdbStore | querySql(sql: string, bindArgs?: Array<ValueType>): Promise<ResultSet> | 根据指定SQL语句查询数据库中的数据,使用Promise异步回调。
-sql:指定要查询的SQL语句。
-bindArgs:SQL语句中参数的值。 | + | RdbStore | remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array<string>): Promise<ResultSet> | 根据指定条件查询指定远程设备数据库中的数据。使用Promise异步回调。
-device:指定远程查询的设备networkId。
-table:指定远程查询的表名。
-predicates:表示RdbPredicates的实例对象,指定查询的条件。
-columns:表示要查询的列。如果值为空,则查询应用于所有列。 | ### 数据库谓词的使用 -关系型数据库提供了用于设置数据库操作条件的谓词RdbPredicatesV9,该类确定RDB中条件表达式的值是true还是false。 +关系型数据库提供了用于设置数据库操作条件的谓词RdbPredicates,该类确定RDB中条件表达式的值是true还是false。 -以下列举几个常用谓词,更多谓词的使用请见[关系型数据库谓词](../reference/apis/js-apis-data-rdb.md#rdbpredicates)。 +以下列举几个常用谓词,更多谓词的使用请见[关系型数据库谓词](../reference/apis/js-apis-data-relationalStore.md#rdbpredicates)。 **表6** 数据库谓词API | 类名 | 接口名 | 描述 | | --------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| RdbPredicatesV9 | equalTo(field: string, value: ValueType): RdbPredicatesV9 | 配置谓词以匹配数据字段为ValueType且值等于指定值的字段。
-field:数据库表中的列名。
-value:指示要与谓词匹配的值。
-RdbPredicatesV9:返回与指定字段匹配的谓词。 | -| RdbPredicatesV9 | notEqualTo(field: string, value: ValueType): RdbPredicatesV9 | 配置谓词以匹配数据字段为ValueType且值不等于指定值的字段。
-field:数据库表中的列名。
-value:指示要与谓词匹配的值。
-RdbPredicatesV9:返回与指定字段匹配的谓词。 | -| RdbPredicatesV9 | or(): RdbPredicatesV9 | 将或条件添加到谓词中。
-RdbPredicatesV9:返回带有或条件的谓词。 | -| RdbPredicatesV9 | and(): RdbPredicatesV9 | 向谓词添加和条件。
-RdbPredicatesV9:返回带有和条件的谓词。 | -| RdbPredicatesV9 | contains(field: string, value: string): RdbPredicatesV9 | 配置谓词以匹配数据字段为String且value包含指定值的字段。
-field:数据库表中的列名。
-value:指示要与谓词匹配的值。
-RdbPredicatesV9:返回带有包含条件的谓词。 | +| RdbPredicates | equalTo(field: string, value: ValueType): RdbPredicates | 配置谓词以匹配数据字段为ValueType且值等于指定值的字段。
-field:数据库表中的列名。
-value:指示要与谓词匹配的值。
-RdbPredicates:返回与指定字段匹配的谓词。 | +| RdbPredicates | notEqualTo(field: string, value: ValueType): RdbPredicates | 配置谓词以匹配数据字段为ValueType且值不等于指定值的字段。
-field:数据库表中的列名。
-value:指示要与谓词匹配的值。
-RdbPredicates:返回与指定字段匹配的谓词。 | +| RdbPredicates | or(): RdbPredicates | 将或条件添加到谓词中。
-RdbPredicates:返回带有或条件的谓词。 | +| RdbPredicates | and(): RdbPredicates | 向谓词添加和条件。
-RdbPredicates:返回带有和条件的谓词。 | +| RdbPredicates | contains(field: string, value: string): RdbPredicates | 配置谓词以匹配数据字段为String且value包含指定值的字段。
-field:数据库表中的列名。
-value:指示要与谓词匹配的值。
-RdbPredicates:返回带有包含条件的谓词。 | ### 查询结果集的使用 -关系型数据库提供了查询返回的结果集ResultSetV9,其指向查询结果中的一行数据,供用户对查询结果进行遍历和访问。 +关系型数据库提供了查询返回的结果集ResultSet,其指向查询结果中的一行数据,供用户对查询结果进行遍历和访问。 -更多结果集的接口使用,请见[结果集](../reference/apis/js-apis-data-resultset.md)。 +更多结果集的接口使用,请见[结果集](../reference/apis/js-apis-data-relationalStore.md#resultset)。 > **须知:** > **结果集使用完后,请一定要调用close方法显式关闭。** @@ -103,12 +102,12 @@ | 类名 | 接口名 | 描述 | | ----------- | ---------------------------------------- | ------------------------------------------ | -| ResultSetV9 | goToFirstRow(): boolean | 将结果集移动到第一行。 | -| ResultSetV9 | getString(columnIndex: number): string | 获取当前行指定列的值,以String类型返回。 | -| ResultSetV9 | getBlob(columnIndex: number): Uint8Array | 获取当前行指定列的值,以字节数组形式返回。 | -| ResultSetV9 | getDouble(columnIndex: number): number | 获取当前行指定列的值,以double型返回。 | -| ResultSetV9 | getLong(columnIndex: number): number | 获取当前行指定列的值,以Long形式返回。 | -| ResultSetV9 | close(): void | 关闭结果集。 | +| 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 | 关闭结果集。 | @@ -116,7 +115,7 @@ > **说明:** > -> - 在使用RdbStoreV9的setDistributedTables、obtainDistributedTableName、sync、on、off接口时,需要请求相应的权限:ohos.permission.DISTRIBUTED_DATASYNC。 +> - 在使用RdbStore的setDistributedTables、obtainDistributedTableName、sync、on、off接口时,需要请求相应的权限:ohos.permission.DISTRIBUTED_DATASYNC。 > - 使用分布式列表前,需要先建立设备间组网,具体接口及使用可见[设备管理](../reference/apis/js-apis-device-manager.md)。 **设置分布式列表** @@ -125,7 +124,7 @@ | 类名 | 接口名 | 描述 | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| RdbStoreV9 | setDistributedTables(tables: Array\): Promise\ | 设置分布式列表,使用Promise异步回调。
-tables:要设置的分布式列表表名。 | +| RdbStore | setDistributedTables(tables: Array\): Promise\ | 设置分布式列表,使用Promise异步回调。
-tables:要设置的分布式列表表名。 | **根据本地表名获取指定远程设备的分布式表名** @@ -135,7 +134,7 @@ | 类名 | 接口名 | 描述 | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| RdbStoreV9 | obtainDistributedTableName(device: string, table: string): Promise\ | 根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。
-device:远程设备。
-table:本地表名。 | +| RdbStore | obtainDistributedTableName(device: string, table: string): Promise\ | 根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。
-device:远程设备。
-table:本地表名。 | **在设备之间同步数据** @@ -143,7 +142,7 @@ | 类名 | 接口名 | 描述 | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| RdbStoreV9 | sync(mode: SyncMode, predicates: RdbPredicatesV9): Promise\> | 在设备之间同步数据,使用Promise异步回调。
-mode:指同步模式。SYNC_MODE_PUSH 表示数据从本地设备推送到远程设备;SYNC_MODE_PULL 表示数据从远程设备拉至本地设备。
-predicates:约束同步数据和设备。
-string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。 | +| RdbStore | sync(mode: SyncMode, predicates: RdbPredicates): Promise\> | 在设备之间同步数据,使用Promise异步回调。
-mode:指同步模式。SYNC_MODE_PUSH 表示数据从本地设备推送到远程设备;SYNC_MODE_PULL 表示数据从远程设备拉至本地设备。
-predicates:约束同步数据和设备。
-string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。 | **注册数据库的观察者** @@ -151,7 +150,7 @@ | 类名 | 接口名 | 描述 | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| RdbStoreV9 | on(event: 'dataChange', type: SubscribeType, observer: Callback\>): void | 注册数据库的观察者。当分布式数据库中的数据发生更改时,将调用回调。
-type:订阅类型;SUBSCRIBE_TYPE_REMOTE 订阅远程数据更改。
-observer:指分布式数据库中数据更改事件的观察者。 | +| RdbStore | on(event: 'dataChange', type: SubscribeType, observer: Callback\>): void | 注册数据库的观察者。当分布式数据库中的数据发生更改时,将调用回调。
-type:订阅类型;SUBSCRIBE_TYPE_REMOTE 订阅远程数据更改。
-observer:指分布式数据库中数据更改事件的观察者。 | **从数据库中删除指定类型的指定观察者** @@ -159,7 +158,7 @@ | 类名 | 接口名 | 描述 | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| RdbStoreV9 | off(event:'dataChange', type: SubscribeType, observer: Callback\>): void; | 从数据库中删除指定类型的指定观察者,使用callback异步回调。
-type:订阅类型;SUBSCRIBE_TYPE_REMOTE 订阅远程数据更改。
-observer:指已注册的数据更改观察者。 | +| RdbStore | off(event:'dataChange', type: SubscribeType, observer: Callback\>): void; | 从数据库中删除指定类型的指定观察者,使用callback异步回调。
-type:订阅类型;SUBSCRIBE_TYPE_REMOTE 订阅远程数据更改。
-observer:指已注册的数据更改观察者。 | ### 数据库的备份和恢复 @@ -169,7 +168,7 @@ | 类名 | 接口名 | 描述 | | ---------- | --------------------------------------------- | ------------------------------------------------------------ | -| RdbStoreV9 | backup(destName: string): Promise<void> | 以指定名称备份数据库,使用Promise异步回调。
-destName:指定数据库的备份文件名。 | +| RdbStore | backup(destName: string): Promise<void> | 以指定名称备份数据库,使用Promise异步回调。
-destName:指定数据库的备份文件名。 | **恢复** @@ -177,17 +176,17 @@ | 类名 | 接口名 | 描述 | | ---------- | --------------------------------------------- | ------------------------------------------------------------ | -| RdbStoreV9 | restore(srcName: string): Promise<void> | 从指定的数据库备份文件恢复数据库,使用Promise异步回调。
-srcName:指定数据库的备份文件名。 | +| RdbStore | restore(srcName: string): Promise<void> | 从指定的数据库备份文件恢复数据库,使用Promise异步回调。
-srcName:指定数据库的备份文件名。 | -**事务** +### 事务 **表15** 事务 | 类名 | 接口名 | 描述 | | -------- | ----------------------- | --------------------------------- | -| RdbStoreV9 | beginTransaction(): void | 在开始执行SQL语句之前,开始事务。 | -| RdbStoreV9 | commit(): void | 提交已执行的SQL语句。 | -| RdbStoreV9 | rollBack(): void | 回滚已经执行的SQL语句。 | +| RdbStore | beginTransaction(): void | 在开始执行SQL语句之前,开始事务。 | +| RdbStore | commit(): void | 提交已执行的SQL语句。 | +| RdbStore | rollBack(): void | 回滚已经执行的SQL语句。 | ## 开发步骤 @@ -202,40 +201,51 @@ FA模型示例: ```js - import data_rdb from '@ohos.data.rdb' - // 获取context + import relationalStore from '@ohos.data.relationalStore' 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)"; + var store; + + // 获取context + let context = featureAbility.getContext(); - 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.') + const STORE_CONFIG = { + name: "RdbTest.db", + securityLevel: relationalStore.SecurityLevel.S1 + }; + + relationalStore.getRdbStore(context, STORE_CONFIG, function (err, rdbStore) { + store = rdbStore; + if (err) { + console.error(`Get RdbStore failed, err: ${err}`); + return; + } + console.info(`Get RdbStore successfully.`); }) ``` Stage模型示例: ```ts - import data_rdb from '@ohos.data.rdb' - // 获取context - import Ability from '@ohos.application.Ability' - let context = null - class MainAbility extends Ability { + import relationalStore from '@ohos.data.relationalStore' + import UIAbility from '@ohos.app.ability.UIAbility' + + class EntryAbility extends UIAbility { onWindowStageCreate(windowStage) { - context = this.context + var store; + const STORE_CONFIG = { + name: "RdbTest.db", + securityLevel: relationalStore.SecurityLevel.S1 + }; + + relationalStore.getRdbStore(this.context, STORE_CONFIG, function (err, rdbStore) { + store = rdbStore; + if (err) { + console.error(`Get RdbStore failed, err: ${err}`); + return; + } + console.info(`Get RdbStore successfully.`); + }) } } - - 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_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,9 +257,25 @@ 示例代码如下: ```js - var u8 = new Uint8Array([1, 2, 3]) - const valueBucket = { "name": "Tom", "age": 18, "salary": 100.5, "blobType": u8 } - let insertPromise = rdbStoreV9.insert("test", valueBucket) + let u8 = new Uint8Array([1, 2, 3]); + const valueBucket = { "name": "Tom", "age": 18, "salary": 100.5, "blobType": u8 }; + let insertPromise = store.insert("test", valueBucket); + ``` + + ```js + //使用事务插入数据 + try { + store.beginTransaction(); + let u8 = new Uint8Array([1, 2, 3]); + const valueBucket = { "name": "Tom", "age": 18, "salary": 100.5, "blobType": u8 }; + let promise = store.insert("test", valueBucket); + promise.then(() => { + store.commit(); + }) + } catch (err) { + console.error(`Transaction failed, err: ${err}`); + store.rollBack(); + } ``` 3. 查询数据。 @@ -263,17 +289,17 @@ 示例代码如下: ```js - let predicatesV9 = new data_rdb.RdbPredicatesV9("test"); - predicatesV9.equalTo("name", "Tom") - let promisequery = rdbStoreV9.query(predicatesV9) - promisequery.then((resultSetV9) => { - resultSetV9.goToFirstRow() - const id = resultSetV9.getLong(resultSetV9.getColumnIndex("id")) - const name = resultSetV9.getString(resultSetV9.getColumnIndex("name")) - const age = resultSetV9.getLong(resultSetV9.getColumnIndex("age")) - const salary = resultSetV9.getDouble(resultSetV9.getColumnIndex("salary")) - const blobType = resultSetV9.getBlob(resultSetV9.getColumnIndex("blobType")) - resultSetV9.close() + let predicates = new relationalStore.RdbPredicates("test"); + predicates.equalTo("name", "Tom"); + let promisequery = store.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(); }) ``` @@ -283,9 +309,9 @@ ```json "requestPermissions": - { - "name": "ohos.permission.DISTRIBUTED_DATASYNC" - } + { + "name": "ohos.permission.DISTRIBUTED_DATASYNC" + } ``` (2) 获取应用权限。 @@ -299,13 +325,13 @@ ```js let context = featureAbility.getContext(); context.requestPermissionsFromUser(['ohos.permission.DISTRIBUTED_DATASYNC'], 666, function (result) { - console.info(`result.requestCode=${result.requestCode}`) + console.info(`result.requestCode=${result.requestCode}`); }) - let promise = rdbStoreV9.setDistributedTables(["test"]) + let promise = store.setDistributedTables(["test"]); promise.then(() => { - console.info("setDistributedTables success.") + console.info(`setDistributedTables success.`); }).catch((err) => { - console.info("setDistributedTables failed.") + console.error(`setDistributedTables failed, ${err}`); }) ``` @@ -320,16 +346,16 @@ 示例代码如下: ```js - let predicateV9 = new data_rdb.RdbPredicatesV9('test') - predicateV9.inDevices(['12345678abcde']) - let promise = rdbStoreV9.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicateV9) + let predicate = new relationalStore.RdbPredicates('test'); + predicate.inDevices(['12345678abcde']); + let promise = store.sync(relationalStore.SyncMode.SYNC_MODE_PUSH, predicate); promise.then((result) => { - console.log('sync done.') - for (let i = 0; i < result.length; i++) { - console.log('device=' + result[i][0] + 'status=' + result[i][1]) - } + console.info(`sync done.`); + for (let i = 0; i < result.length; i++) { + console.info(`device=${result[i][0]}, status=${result[i][1]}`); + } }).catch((err) => { - console.log('sync failed') + console.error(`sync failed, err: ${err}`); }) ``` @@ -343,15 +369,15 @@ ```js function storeObserver(devices) { - for (let i = 0; i < devices.length; i++) { - console.log('device=' + device[i] + 'data changed') - } + for (let i = 0; i < devices.length; i++) { + console.info(`device= ${device[i]} data changed`); + } } - + try { - rdbStoreV9.on('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver) + store.on('dataChange', relationalStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver); } catch (err) { - console.log('register observer failed') + console.error(`register observer failed, err: ${err}`); } ``` @@ -364,62 +390,78 @@ 示例代码如下: ```js - let tableName = rdbStoreV9.obtainDistributedTableName(deviceId, "test"); - let resultSetV9 = rdbStoreV9.querySql("SELECT * FROM " + tableName) + import deviceManager from '@ohos.distributedHardware.deviceManager' + + let deviceIds = []; + deviceManager.createDeviceManager('bundleName', (err, value) => { + if (!err) { + let devManager = value; + if (devManager != null) { + // 获取deviceIds + let devices = devManager.getTrustedDeviceListSync(); + for (let i = 0; i < devices.length; i++) { + deviceIds[i] = devices[i].deviceId; + } + } + } + }) + + let tableName = store.obtainDistributedTableName(deviceIds[0], "test"); + let resultSet = store.querySql("SELECT * FROM " + tableName); ``` 8. 远程查询。 - (1) 构造用于查询分布式表的谓词对象,指定组网内的远程分布式表名和设备。 (2) 调用结果集接口,返回查询结果。 示例代码如下: - - ```js - let rdbPredicateV9 = new data_rdb.RdbPredicatesV9('employee') - predicatesV9.greaterThan("id", 0) - let promiseQuery = rdbStoreV9.remoteQuery('12345678abcde', 'employee', rdbPredicateV9) - promiseQuery.then((resultSetV9) => { - while (resultSetV9.goToNextRow()) { - let idx = resultSetV9.getLong(0); - let name = resultSetV9.getString(1); - let age = resultSetV9.getLong(2); - console.info(idx + " " + name + " " + age); - } - resultSetV9.close(); + + ```js + let rdbPredicate = new relationalStore.RdbPredicates('employee'); + predicates.greaterThan("id", 0) ; + let promiseQuery = store.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); + console.info(`indx: ${idx}, name: ${name}, age: ${age}`); + } + resultSet.close(); }).catch((err) => { - console.info("failed to remoteQuery, err: " + err) + console.error(`failed to remoteQuery, err: ${err}`); }) - ``` - + ``` + 9. 数据库的备份和恢复。 (1) 调用数据库的备份接口,备份当前数据库文件。 - 示例代码如下: + 示例代码如下: - ```js - let promiseBackup = rdbStoreV9.backup("dbBackup.db") + ```js + let promiseBackup = store.backup("dbBackup.db"); promiseBackup.then(() => { - console.info('Backup success.') + console.info(`Backup success.`); }).catch((err) => { - console.info('Backup failed, err: ' + err) + console.error(`Backup failed, err: ${err}`); }) - ``` - (2) 调用数据库的恢复接口,从数据库的备份文件恢复数据库文件。 + ``` - 示例代码如下: + (2) 调用数据库的恢复接口,从数据库的备份文件恢复数据库文件。 - ```js - let promiseRestore = rdbStoreV9.restore("dbBackup.db") + 示例代码如下: + + ```js + let promiseRestore = store.restore("dbBackup.db"); promiseRestore.then(() => { - console.info('Restore success.') + console.info(`Restore success.`); }).catch((err) => { - console.info('Restore failed, err: ' + err) + console.error(`Restore failed, err: ${err}`); }) - ``` + ``` ## 相关实例 针对关系型数据库开发,有以下相关实例可供参考: diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-relationalStore.md b/zh-cn/application-dev/reference/apis/js-apis-data-relationalStore.md index 5989299983dc5d16b4a2061454ff57e9af5981b1..534ac2eb81515b5d5c7a04cb74da70b3d1b9ce04 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-relationalStore.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-relationalStore.md @@ -15,10 +15,10 @@ ## 导入模块 ```js -import data_rdb from '@ohos.data.relationalStore'; +import relationalStore from '@ohos.data.relationalStore' ``` -## data_rdb.getRdbStore +## relationalStore.getRdbStore getRdbStore(context: Context, config: StoreConfig, callback: AsyncCallback<RdbStore>): void @@ -48,51 +48,55 @@ getRdbStore(context: Context, config: StoreConfig, callback: AsyncCallback<Rd FA模型示例: ```js -// 获取context + import featureAbility from '@ohos.ability.featureAbility' -let context = featureAbility.getContext() -// 获取context后调用getRdbStore +var store; + +// 获取context +let context = featureAbility.getContext(); + const STORE_CONFIG = { - name: "RdbTest.db", - securityLevel: data_rdb.SecurityLevel.S1 -} -data_rdb.getRdbStore(context, STORE_CONFIG, function (err, RdbStore) { - if (err) { - console.info("Get RdbStore failed, err: " + err) - return - } - console.log("Get RdbStore successfully.") + name: "RdbTest.db", + securityLevel: relationalStore.SecurityLevel.S1 +}; + +relationalStore.getRdbStore(context, STORE_CONFIG, function (err, rdbStore) { + store = rdbStore; + if (err) { + console.error(`Get RdbStore failed, err: ${err}`); + return; + } + console.info(`Get RdbStore successfully.`); }) ``` Stage模型示例: ```ts -// 获取context -import Ability from '@ohos.application.Ability' -let context -class MainAbility extends Ability{ - onWindowStageCreate(windowStage){ - context = this.context - } -} - -// 获取context后调用getRdbStore -const STORE_CONFIG = { - name: "RdbTest.db", - securityLevel: data_rdb.SecurityLevel.S1 +import UIAbility from '@ohos.app.ability.UIAbility' + +class EntryAbility extends UIAbility { + onWindowStageCreate(windowStage) { + var store; + const STORE_CONFIG = { + name: "RdbTest.db", + securityLevel: relationalStore.SecurityLevel.S1 + }; + + relationalStore.getRdbStore(this.context, STORE_CONFIG, function (err, rdbStore) { + store = rdbStore; + if (err) { + console.error(`Get RdbStore failed, err: ${err}`); + return; + } + console.info(`Get RdbStore successfully.`); + }) + } } -data_rdb.getRdbStore(context, STORE_CONFIG, function (err, RdbStore) { - if (err) { - console.info("Get RdbStore failed, err: " + err) - return - } - console.log("Get RdbStore successfully.") -}) ``` -## data_rdb.getRdbStore +## relationalStore.getRdbStore getRdbStore(context: Context, config: StoreConfig): Promise<RdbStore> @@ -127,49 +131,52 @@ getRdbStore(context: Context, config: StoreConfig): Promise<RdbStore> FA模型示例: ```js -// 获取context import featureAbility from '@ohos.ability.featureAbility' -let context = featureAbility.getContext() -// 获取context后调用getRdbStore +var store; + +// 获取context +let context = featureAbility.getContext(); + const STORE_CONFIG = { - name: "RdbTest.db", - securityLevel: data_rdb.SecurityLevel.S1 -} -let promise = data_rdb.getRdbStore(context, STORE_CONFIG); + name: "RdbTest.db", + securityLevel: relationalStore.SecurityLevel.S1 +}; + +let promise = relationalStore.getRdbStore(context, STORE_CONFIG); promise.then(async (rdbStore) => { - console.log("Get RdbStore successfully.") + store = rdbStore; + console.info(`Get RdbStore successfully.`); }).catch((err) => { - console.log("Get RdbStore failed, err: " + err) + console.error(`Get RdbStore failed, err: ${err}`); }) ``` Stage模型示例: ```ts -// 获取context -import Ability from '@ohos.application.Ability' -let context -class MainAbility extends Ability{ - onWindowStageCreate(windowStage){ - context = this.context - } -} - -// 获取context后调用getRdbStore -const STORE_CONFIG = { - name: "RdbTest.db", - securityLevel: data_rdb.SecurityLevel.S1 +import UIAbility from '@ohos.app.ability.UIAbility' + +class EntryAbility extends UIAbility { + onWindowStageCreate(windowStage) { + var store; + const STORE_CONFIG = { + name: "RdbTest.db", + securityLevel: relationalStore.SecurityLevel.S1 + }; + + let promise = relationalStore.getRdbStore(this.context, STORE_CONFIG); + promise.then(async (rdbStore) => { + store = rdbStore; + console.info(`Get RdbStore successfully.`) + }).catch((err) => { + console.error(`Get RdbStore failed, err: ${err}`); + }) + } } -let promise = data_rdb.getRdbStore(context, STORE_CONFIG); -promise.then(async (rdbStore) => { - console.log("Get RdbStore successfully.") -}).catch((err) => { - console.log("Get RdbStore failed, err: " + err) -}) ``` -## data_rdb.deleteRdbStore +## relationalStore.deleteRdbStore deleteRdbStore(context: Context, name: string, callback: AsyncCallback<void>): void @@ -198,43 +205,39 @@ deleteRdbStore(context: Context, name: string, callback: AsyncCallback<void&g FA模型示例: ```js -// 获取context import featureAbility from '@ohos.ability.featureAbility' + +// 获取context let context = featureAbility.getContext() -// 获取context后调用deleteRdbStore -data_rdb.deleteRdbStore(context, "RdbTest.db", function (err) { - if (err) { - console.info("Delete RdbStore failed, err: " + err) - return - } - console.log("Delete RdbStore successfully.") +relationalStore.deleteRdbStore(context, "RdbTest.db", function (err) { + if (err) { + console.error(`Delete RdbStore failed, err: ${err}`); + return; + } + console.info(`Delete RdbStore successfully.`); }) ``` Stage模型示例: ```ts -// 获取context -import Ability from '@ohos.application.Ability' -let context -class MainAbility extends Ability{ - onWindowStageCreate(windowStage){ - context = this.context - } -} +import UIAbility from '@ohos.app.ability.UIAbility' -// 获取context后调用deleteRdbStore -data_rdb.deleteRdbStore(context, "RdbTest.db", function (err) { - if (err) { - console.info("Delete RdbStore failed, err: " + err) - return - } - console.log("Delete RdbStore successfully.") -}) +class EntryAbility extends UIAbility { + onWindowStageCreate(windowStage){ + relationalStore.deleteRdbStore(this.context, "RdbTest.db", function (err) { + if (err) { + console.error(`Delete RdbStore failed, err: ${err}`); + return; + } + console.info(`Delete RdbStore successfully.`); + }) + } +} ``` -## data_rdb.deleteRdbStore +## relationalStore.deleteRdbStore deleteRdbStore(context: Context, name: string): Promise<void> @@ -268,38 +271,34 @@ deleteRdbStore(context: Context, name: string): Promise<void> FA模型示例: ```js -// 获取context import featureAbility from '@ohos.ability.featureAbility' -let context = featureAbility.getContext() -// 获取context后调用deleteRdbStore -let promise = data_rdb.deleteRdbStore(context, "RdbTest.db") +// 获取context +let context = featureAbility.getContext(); + +let promise = relationalStore.deleteRdbStore(context, "RdbTest.db"); promise.then(()=>{ - console.log("Delete RdbStore successfully.") + console.info(`Delete RdbStore successfully.`); }).catch((err) => { - console.info("Delete RdbStore failed, err: " + err) + console.error(`Delete RdbStore failed, err: ${err}`); }) ``` Stage模型示例: ```ts -// 获取context -import Ability from '@ohos.application.Ability' -let context -class MainAbility extends Ability{ - onWindowStageCreate(windowStage){ - context = this.context - } +import UIAbility from '@ohos.app.ability.UIAbility' + +class EntryAbility extends UIAbility { + onWindowStageCreate(windowStage){ + let promise = relationalStore.deleteRdbStore(this.context, "RdbTest.db"); + promise.then(()=>{ + console.info(`Delete RdbStore successfully.`); + }).catch((err) => { + console.error(`Delete RdbStore failed, err: ${err}`); + }) + } } - -// 获取context后调用deleteRdbStore -let promise = data_rdb.deleteRdbStore(context, "RdbTest.db") -promise.then(()=>{ - console.log("Delete RdbStore successfully.") -}).catch((err) => { - console.info("Delete RdbStore failed, err: " + err) -}) ``` ## StoreConfig @@ -391,7 +390,7 @@ constructor(name: string) **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); ``` ### inDevices @@ -418,8 +417,8 @@ inDevices(devices: Array<string>): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.inDevices(['12345678abcde']) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.inDevices(['12345678abcde']); ``` ### inAllDevices @@ -440,8 +439,8 @@ inAllDevices(): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.inAllDevices() +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.inAllDevices(); ``` ### equalTo @@ -469,8 +468,8 @@ equalTo(field: string, value: ValueType): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.equalTo("NAME", "lisi") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.equalTo("NAME", "lisi"); ``` @@ -499,8 +498,8 @@ notEqualTo(field: string, value: ValueType): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.notEqualTo("NAME", "lisi") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.notEqualTo("NAME", "lisi"); ``` @@ -522,7 +521,7 @@ beginWrap(): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); predicates.equalTo("NAME", "lisi") .beginWrap() .equalTo("AGE", 18) @@ -548,7 +547,7 @@ endWrap(): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); predicates.equalTo("NAME", "lisi") .beginWrap() .equalTo("AGE", 18) @@ -574,7 +573,7 @@ or(): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); predicates.equalTo("NAME", "Lisa") .or() .equalTo("NAME", "Rose") @@ -597,7 +596,7 @@ and(): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); predicates.equalTo("NAME", "Lisa") .and() .equalTo("SALARY", 200.5) @@ -627,8 +626,8 @@ contains(field: string, value: string): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.contains("NAME", "os") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.contains("NAME", "os"); ``` ### beginsWith @@ -655,8 +654,8 @@ beginsWith(field: string, value: string): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.beginsWith("NAME", "os") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.beginsWith("NAME", "os"); ``` ### endsWith @@ -683,8 +682,8 @@ endsWith(field: string, value: string): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.endsWith("NAME", "se") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.endsWith("NAME", "se"); ``` ### isNull @@ -710,8 +709,8 @@ isNull(field: string): RdbPredicates **示例**: ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.isNull("NAME") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.isNull("NAME"); ``` ### isNotNull @@ -737,8 +736,8 @@ isNotNull(field: string): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.isNotNull("NAME") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.isNotNull("NAME"); ``` ### like @@ -765,8 +764,8 @@ like(field: string, value: string): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.like("NAME", "%os%") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.like("NAME", "%os%"); ``` ### glob @@ -793,8 +792,8 @@ glob(field: string, value: string): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.glob("NAME", "?h*g") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.glob("NAME", "?h*g"); ``` ### between @@ -822,8 +821,8 @@ between(field: string, low: ValueType, high: ValueType): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.between("AGE", 10, 50) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.between("AGE", 10, 50); ``` ### notBetween @@ -851,8 +850,8 @@ notBetween(field: string, low: ValueType, high: ValueType): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.notBetween("AGE", 10, 50) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.notBetween("AGE", 10, 50); ``` ### greaterThan @@ -879,8 +878,8 @@ greaterThan(field: string, value: ValueType): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.greaterThan("AGE", 18) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.greaterThan("AGE", 18); ``` ### lessThan @@ -907,8 +906,8 @@ lessThan(field: string, value: ValueType): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.lessThan("AGE", 20) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.lessThan("AGE", 20); ``` ### greaterThanOrEqualTo @@ -935,8 +934,8 @@ greaterThanOrEqualTo(field: string, value: ValueType): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.greaterThanOrEqualTo("AGE", 18) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.greaterThanOrEqualTo("AGE", 18); ``` ### lessThanOrEqualTo @@ -963,8 +962,8 @@ lessThanOrEqualTo(field: string, value: ValueType): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.lessThanOrEqualTo("AGE", 20) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.lessThanOrEqualTo("AGE", 20); ``` ### orderByAsc @@ -990,8 +989,8 @@ orderByAsc(field: string): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.orderByAsc("NAME") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.orderByAsc("NAME"); ``` ### orderByDesc @@ -1017,8 +1016,8 @@ orderByDesc(field: string): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.orderByDesc("AGE") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.orderByDesc("AGE"); ``` ### distinct @@ -1038,8 +1037,8 @@ distinct(): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.equalTo("NAME", "Rose").distinct() +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.equalTo("NAME", "Rose").distinct(); ``` ### limitAs @@ -1065,8 +1064,8 @@ limitAs(value: number): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.equalTo("NAME", "Rose").limitAs(3) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.equalTo("NAME", "Rose").limitAs(3); ``` ### offsetAs @@ -1092,8 +1091,8 @@ offsetAs(rowOffset: number): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.equalTo("NAME", "Rose").offsetAs(3) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.equalTo("NAME", "Rose").offsetAs(3); ``` ### groupBy @@ -1119,8 +1118,8 @@ groupBy(fields: Array<string>): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.groupBy(["AGE", "NAME"]) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.groupBy(["AGE", "NAME"]); ``` ### indexedBy @@ -1147,8 +1146,8 @@ indexedBy(field: string): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.indexedBy("SALARY_INDEX") +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.indexedBy("SALARY_INDEX"); ``` ### in @@ -1175,8 +1174,8 @@ in(field: string, value: Array<ValueType>): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.in("AGE", [18, 20]) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.in("AGE", [18, 20]); ``` ### notIn @@ -1203,8 +1202,8 @@ notIn(field: string, value: Array<ValueType>): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.notIn("NAME", ["Lisa", "Rose"]) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.notIn("NAME", ["Lisa", "Rose"]); ``` ## RdbStore @@ -1233,19 +1232,21 @@ insert(table: string, values: ValuesBucket, callback: AsyncCallback<number> ```js const valueBucket = { - "NAME": "Lisa", - "AGE": 18, - "SALARY": 100.5, - "CODES": new Uint8Array([1, 2, 3, 4, 5]), -} -rdbStore.insert("EMPLOYEE", valueBucket, function (status, rowId) { - if (status) { - console.log("Insert is failed"); - return; - } - console.log("Insert is successful, rowId = " + rowId); + "NAME": "Lisa", + "AGE": 18, + "SALARY": 100.5, + "CODES": new Uint8Array([1, 2, 3, 4, 5]), +}; +store.insert("EMPLOYEE", valueBucket, function (err, rowId) { + if (err) { + console.error(`Insert is failed, err: ${err}`); + return; + } + console.info(`Insert is successful, rowId = ${rowId}`); }) ``` + + ### insert insert(table: string, values: ValuesBucket):Promise<number> @@ -1271,19 +1272,20 @@ insert(table: string, values: ValuesBucket):Promise<number> ```js const valueBucket = { - "NAME": "Lisa", - "AGE": 18, - "SALARY": 100.5, - "CODES": new Uint8Array([1, 2, 3, 4, 5]), -} -let promise = rdbStore.insert("EMPLOYEE", valueBucket) + "NAME": "Lisa", + "AGE": 18, + "SALARY": 100.5, + "CODES": new Uint8Array([1, 2, 3, 4, 5]), +}; +let promise = store.insert("EMPLOYEE", valueBucket); promise.then((rowId) => { - console.log("Insert is successful, rowId = " + rowId); -}).catch((status) => { - console.log("Insert is failed"); + console.info(`Insert is successful, rowId = ${rowId}`); +}).catch((err) => { + console.error(`Insert is failed, err: ${err}`); }) ``` + ### batchInsert batchInsert(table: string, values: Array<ValuesBucket>, callback: AsyncCallback<number>):void @@ -1304,31 +1306,31 @@ batchInsert(table: string, values: Array<ValuesBucket>, callback: AsyncCal ```js const valueBucket1 = { - "NAME": "Lisa", - "AGE": 18, - "SALARY": 100.5, - "CODES": new Uint8Array([1, 2, 3, 4, 5]) -} + "NAME": "Lisa", + "AGE": 18, + "SALARY": 100.5, + "CODES": new Uint8Array([1, 2, 3, 4, 5]) +}; const valueBucket2 = { - "NAME": "Jack", - "AGE": 19, - "SALARY": 101.5, - "CODES": new Uint8Array([6, 7, 8, 9, 10]) -} + "NAME": "Jack", + "AGE": 19, + "SALARY": 101.5, + "CODES": new Uint8Array([6, 7, 8, 9, 10]) +}; const valueBucket3 = { - "NAME": "Tom", - "AGE": 20, - "SALARY": 102.5, - "CODES": new Uint8Array([11, 12, 13, 14, 15]) -} + "NAME": "Tom", + "AGE": 20, + "SALARY": 102.5, + "CODES": new Uint8Array([11, 12, 13, 14, 15]) +}; let valueBuckets = new Array(valueBucket1, valueBucket2, valueBucket3); -rdbStore.batchInsert("EMPLOYEE", valueBuckets, function(status, insertNum) { - if (status) { - console.log("batchInsert is failed, status = " + status); - return; - } - console.log("batchInsert is successful, the number of values that were inserted = " + insertNum); +store.batchInsert("EMPLOYEE", valueBuckets, function(err, insertNum) { + if (err) { + console.error(`batchInsert is failed, err: ${err}`); + return; + } + console.info(`batchInsert is successful, the number of values that were inserted = ${insertNum}`); }) ``` @@ -1357,30 +1359,30 @@ batchInsert(table: string, values: Array<ValuesBucket>):Promise<number& ```js const valueBucket1 = { - "NAME": "Lisa", - "AGE": 18, - "SALARY": 100.5, - "CODES": new Uint8Array([1, 2, 3, 4, 5]) -} + "NAME": "Lisa", + "AGE": 18, + "SALARY": 100.5, + "CODES": new Uint8Array([1, 2, 3, 4, 5]) +}; const valueBucket2 = { - "NAME": "Jack", - "AGE": 19, - "SALARY": 101.5, - "CODES": new Uint8Array([6, 7, 8, 9, 10]) -} + "NAME": "Jack", + "AGE": 19, + "SALARY": 101.5, + "CODES": new Uint8Array([6, 7, 8, 9, 10]) +}; const valueBucket3 = { - "NAME": "Tom", - "AGE": 20, - "SALARY": 102.5, - "CODES": new Uint8Array([11, 12, 13, 14, 15]) -} + "NAME": "Tom", + "AGE": 20, + "SALARY": 102.5, + "CODES": new Uint8Array([11, 12, 13, 14, 15]) +}; let valueBuckets = new Array(valueBucket1, valueBucket2, valueBucket3); -let promise = rdbStore.batchInsert("EMPLOYEE", valueBuckets); +let promise = store.batchInsert("EMPLOYEE", valueBuckets); promise.then((insertNum) => { - console.log("batchInsert is successful, the number of values that were inserted = " + insertNum); -}).catch((status) => { - console.log("batchInsert is failed, status = " + status); + console.info(`batchInsert is successful, the number of values that were inserted = ${insertNum}`); +}).catch((err) => { + console.error(`batchInsert is failed, err: ${err}`); }) ``` @@ -1404,22 +1406,23 @@ update(values: ValuesBucket, predicates: RdbPredicates, callback: AsyncCallback& ```js const valueBucket = { - "NAME": "Rose", - "AGE": 22, - "SALARY": 200.5, - "CODES": new Uint8Array([1, 2, 3, 4, 5]), -} -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.equalTo("NAME", "Lisa") -rdbStore.update(valueBucket, predicates, function (err, rows) { - if (err) { - console.info("Updated failed, err: " + err) - return - } - console.log("Updated row count: " + rows) + "NAME": "Rose", + "AGE": 22, + "SALARY": 200.5, + "CODES": new Uint8Array([1, 2, 3, 4, 5]), +}; +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.equalTo("NAME", "Lisa"); +store.update(valueBucket, predicates, function (err, rows) { + if (err) { + console.error(`Updated failed, err: ${err}`); + return; + } + console.info(`Updated row count: ${rows}`); }) ``` + ### update update(values: ValuesBucket, predicates: RdbPredicates):Promise<number> @@ -1445,21 +1448,22 @@ update(values: ValuesBucket, predicates: RdbPredicates):Promise<number> ```js const valueBucket = { - "NAME": "Rose", - "AGE": 22, - "SALARY": 200.5, - "CODES": new Uint8Array([1, 2, 3, 4, 5]), -} -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.equalTo("NAME", "Lisa") -let promise = rdbStore.update(valueBucket, predicates) + "NAME": "Rose", + "AGE": 22, + "SALARY": 200.5, + "CODES": new Uint8Array([1, 2, 3, 4, 5]), +}; +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.equalTo("NAME", "Lisa"); +let promise = store.update(valueBucket, predicates); promise.then(async (rows) => { - console.log("Updated row count: " + rows) + console.info(`Updated row count: ${rows}`); }).catch((err) => { - console.info("Updated failed, err: " + err) + console.error(`Updated failed, err: ${err}`); }) ``` + ### update update(table: string, values: ValuesBucket, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback<number>):void @@ -1488,15 +1492,15 @@ const valueBucket = { "AGE": 22, "SALARY": 200.5, "CODES": new Uint8Array([1, 2, 3, 4, 5]), -} -let predicates = new dataSharePredicates.DataSharePredicates() -predicates.equalTo("NAME", "Lisa") -rdbStore.update("EMPLOYEE", valueBucket, predicates, function (err, rows) { - if (err) { - console.info("Updated failed, err: " + err) - return - } - console.log("Updated row count: " + rows) +}; +let predicates = new dataSharePredicates.DataSharePredicates(); +predicates.equalTo("NAME", "Lisa"); +store.update("EMPLOYEE", valueBucket, predicates, function (err, rows) { + if (err) { + console.error(`Updated failed, err: ${err}`); + return; + } + console.info(`Updated row count: ${rows}`); }) ``` @@ -1529,18 +1533,18 @@ update(table: string, values: ValuesBucket, predicates: dataSharePredicates.Data ```js import dataSharePredicates from '@ohos.data.dataSharePredicates' const valueBucket = { - "NAME": "Rose", - "AGE": 22, - "SALARY": 200.5, - "CODES": new Uint8Array([1, 2, 3, 4, 5]), -} -let predicates = new dataSharePredicates.DataSharePredicates() -predicates.equalTo("NAME", "Lisa") -let promise = rdbStore.update("EMPLOYEE", valueBucket, predicates) + "NAME": "Rose", + "AGE": 22, + "SALARY": 200.5, + "CODES": new Uint8Array([1, 2, 3, 4, 5]), +}; +let predicates = new dataSharePredicates.DataSharePredicates(); +predicates.equalTo("NAME", "Lisa"); +let promise = store.update("EMPLOYEE", valueBucket, predicates); promise.then(async (rows) => { - console.log("Updated row count: " + rows) + console.info(`Updated row count: ${rows}`); }).catch((err) => { - console.info("Updated failed, err: " + err) + console.error(`Updated failed, err: ${err}`); }) ``` @@ -1562,14 +1566,14 @@ delete(predicates: RdbPredicates, callback: AsyncCallback<number>):void **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.equalTo("NAME", "Lisa") -rdbStore.delete(predicates, function (err, rows) { - if (err) { - console.info("Delete failed, err: " + err) - return - } - console.log("Delete rows: " + rows) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.equalTo("NAME", "Lisa"); +store.delete(predicates, function (err, rows) { + if (err) { + console.error(`Delete failed, err: ${err}`); + return; + } + console.info(`Delete rows: ${rows}`); }) ``` @@ -1596,13 +1600,13 @@ delete(predicates: RdbPredicates):Promise<number> **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.equalTo("NAME", "Lisa") -let promise = rdbStore.delete(predicates) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.equalTo("NAME", "Lisa"); +let promise = store.delete(predicates); promise.then((rows) => { - console.log("Delete rows: " + rows) + console.info(`Delete rows: ${rows}`); }).catch((err) => { - console.info("Delete failed, err: " + err) + console.error(`Delete failed, err: ${err}`); }) ``` @@ -1628,14 +1632,14 @@ delete(table: string, predicates: dataSharePredicates.DataSharePredicates, callb ```js import dataSharePredicates from '@ohos.data.dataSharePredicates' -let predicates = new dataSharePredicates.DataSharePredicates() -predicates.equalTo("NAME", "Lisa") -rdbStore.delete("EMPLOYEE", predicates, function (err, rows) { - if (err) { - console.info("Delete failed, err: " + err) - return - } - console.log("Delete rows: " + rows) +let predicates = new dataSharePredicates.DataSharePredicates(); +predicates.equalTo("NAME", "Lisa"); +store.delete("EMPLOYEE", predicates, function (err, rows) { + if (err) { + console.error(`Delete failed, err: ${err}`); + return; + } + console.info(`Delete rows: ${rows}`); }) ``` @@ -1666,13 +1670,13 @@ delete(table: string, predicates: dataSharePredicates.DataSharePredicates):Promi ```js import dataSharePredicates from '@ohos.data.dataSharePredicates' -let predicates = new dataSharePredicates.DataSharePredicates() -predicates.equalTo("NAME", "Lisa") -let promise = rdbStore.delete("EMPLOYEE", predicates) +let predicates = new dataSharePredicates.DataSharePredicates(); +predicates.equalTo("NAME", "Lisa"); +let promise = store.delete("EMPLOYEE", predicates); promise.then((rows) => { - console.log("Delete rows: " + rows) + console.info(`Delete rows: ${rows}`); }).catch((err) => { - console.info("Delete failed, err: " + err) + console.error(`Delete failed, err: ${err}`); }) ``` @@ -1695,15 +1699,15 @@ query(predicates: RdbPredicates, columns: Array<string>, callback: AsyncCa **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.equalTo("NAME", "Rose") -rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (err, resultSet) { - if (err) { - console.info("Query failed, err: " + err) - return - } - console.log("ResultSet column names: " + resultSet.columnNames) - console.log("ResultSet column count: " + resultSet.columnCount) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.equalTo("NAME", "Rose"); +store.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (err, resultSet) { + if (err) { + console.error(`Query failed, err: ${err}`); + return; + } + console.info(`ResultSet column names: ${resultSet.columnNames}`); + console.info(`ResultSet column count: ${resultSet.columnCount}`); }) ``` @@ -1731,14 +1735,14 @@ query(predicates: RdbPredicates, columns?: Array<string>):Promise<Resul **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.equalTo("NAME", "Rose") -let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]) +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.equalTo("NAME", "Rose"); +let promise = store.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); promise.then((resultSet) => { - console.log("ResultSet column names: " + resultSet.columnNames) - console.log("ResultSet column count: " + resultSet.columnCount) + console.info(`ResultSet column names: ${resultSet.columnNames}`); + console.info(`ResultSet column count: ${resultSet.columnCount}`); }).catch((err) => { - console.info("Query failed, err: " + err) + console.error(`Query failed, err: ${err}`); }) ``` @@ -1765,15 +1769,15 @@ query(table: string, predicates: dataSharePredicates.DataSharePredicates, column ```js import dataSharePredicates from '@ohos.data.dataSharePredicates' -let predicates = new dataSharePredicates.DataSharePredicates() -predicates.equalTo("NAME", "Rose") -rdbStore.query("EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (err, resultSet) { - if (err) { - console.info("Query failed, err: " + err) - return - } - console.log("ResultSet column names: " + resultSet.columnNames) - console.log("ResultSet column count: " + resultSet.columnCount) +let predicates = new dataSharePredicates.DataSharePredicates(); +predicates.equalTo("NAME", "Rose"); +store.query("EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (err, resultSet) { + if (err) { + console.error(`Query failed, err: ${err}`); + return; + } + console.info(`ResultSet column names: ${resultSet.columnNames}`); + console.info(`ResultSet column count: ${resultSet.columnCount}`); }) ``` @@ -1805,14 +1809,14 @@ query(table: string, predicates: dataSharePredicates.DataSharePredicates, column ```js import dataSharePredicates from '@ohos.data.dataSharePredicates' -let predicates = new dataSharePredicates.DataSharePredicates() -predicates.equalTo("NAME", "Rose") -let promise = rdbStore.query("EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]) +let predicates = new dataSharePredicates.DataSharePredicates(); +predicates.equalTo("NAME", "Rose"); +let promise = store.query("EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); promise.then((resultSet) => { - console.log("ResultSet column names: " + resultSet.columnNames) - console.log("ResultSet column count: " + resultSet.columnCount) + console.info(`ResultSet column names: ${resultSet.columnNames}`); + console.info(`ResultSet column count: ${resultSet.columnCount}`); }).catch((err) => { - console.info("Query failed, err: " + err) + console.error(`Query failed, err: ${err}`); }) ``` @@ -1837,17 +1841,18 @@ remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: A **示例:** ```js -let predicates = new data_rdb.RdbPredicates('EMPLOYEE') -predicates.greaterThan("id", 0) -rdbStore.remoteQuery("deviceId", "EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], - function(err, resultSet){ +let predicates = new relationalStore.RdbPredicates('EMPLOYEE'); +predicates.greaterThan("id", 0); +store.remoteQuery("deviceId", "EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], + function(err, resultSet) { if (err) { - console.info("Failed to remoteQuery, err: " + err) - return + console.error(`Failed to remoteQuery, err: ${err}`); + return; } - console.info("ResultSet column names: " + resultSet.columnNames) - console.info("ResultSet column count: " + resultSet.columnCount) -}) + console.info(`ResultSet column names: ${resultSet.columnNames}`); + console.info(`ResultSet column count: ${resultSet.columnCount}`); + } +) ``` ### remoteQuery @@ -1876,14 +1881,14 @@ remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: A **示例:** ```js -let predicates = new data_rdb.RdbPredicates('EMPLOYEE') -predicates.greaterThan("id", 0) -let promise = rdbStore.remoteQuery("deviceId", "EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]) +let predicates = new relationalStore.RdbPredicates('EMPLOYEE'); +predicates.greaterThan("id", 0); +let promise = store.remoteQuery("deviceId", "EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); promise.then((resultSet) => { - console.info("ResultSet column names: " + resultSet.columnNames) - console.info("ResultSet column count: " + resultSet.columnCount) + console.info(`ResultSet column names: ${resultSet.columnNames}`); + console.info(`ResultSet column count: ${resultSet.columnCount}`); }).catch((err) => { - console.info("Failed to remoteQuery , err: " + err) + console.error(`Failed to remoteQuery, err: ${err}`); }) ``` @@ -1906,13 +1911,13 @@ querySql(sql: string, bindArgs: Array<ValueType>, callback: AsyncCallback& **示例:** ```js -rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'], function (err, resultSet) { - if (err) { - console.info("Query failed, err: " + err) - return - } - console.log("ResultSet column names: " + resultSet.columnNames) - console.log("ResultSet column count: " + resultSet.columnCount) +store.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'], function (err, resultSet) { + if (err) { + console.error(`Query failed, err: ${err}`); + return; + } + console.info(`ResultSet column names: ${resultSet.columnNames}`); + console.info(`ResultSet column count: ${resultSet.columnCount}`); }) ``` @@ -1940,12 +1945,12 @@ querySql(sql: string, bindArgs?: Array<ValueType>):Promise<ResultSet> **示例:** ```js -let promise = rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo']) +let promise = store.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo']); promise.then((resultSet) => { - console.log("ResultSet column names: " + resultSet.columnNames) - console.log("ResultSet column count: " + resultSet.columnCount) + console.info(`ResultSet column names: ${resultSet.columnNames}`); + console.info(`ResultSet column count: ${resultSet.columnCount}`); }).catch((err) => { - console.info("Query failed, err: " + err) + console.error(`Query failed, err: ${err}`); }) ``` @@ -1969,12 +1974,12 @@ executeSql(sql: string, bindArgs: Array<ValueType>, callback: AsyncCallbac ```js const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)" -rdbStore.executeSql(SQL_CREATE_TABLE, null, function(err) { - if (err) { - console.info("ExecuteSql failed, err: " + err) - return - } - console.info('Create table done.') +store.executeSql(SQL_CREATE_TABLE, null, function(err) { + if (err) { + console.error(`ExecuteSql failed, err: ${err}`); + return; + } + console.info(`Create table done.`); }) ``` @@ -2003,11 +2008,11 @@ executeSql(sql: string, bindArgs?: Array<ValueType>):Promise<void> ```js const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)" -let promise = rdbStore.executeSql(SQL_CREATE_TABLE) +let promise = store.executeSql(SQL_CREATE_TABLE); promise.then(() => { - console.info('Create table done.') + console.info(`Create table done.`); }).catch((err) => { - console.info("ExecuteSql failed, err: " + err) + console.error(`ExecuteSql failed, err: ${err}`); }) ``` @@ -2023,19 +2028,25 @@ beginTransaction():void ```js import featureAbility from '@ohos.ability.featureAbility' -let context = featureAbility.getContext() -const STORE_CONFIG = { name: "RdbTest.db", - securityLevel: data_rdb.SecurityLevel.S1} -data_rdb.getRdbStore(context, STORE_CONFIG, async function (err, rdbStore) { - rdbStore.beginTransaction() - const valueBucket = { - "name": "lisi", - "age": 18, - "salary": 100.5, - "blobType": new Uint8Array([1, 2, 3]), - } - await rdbStore.insert("test", valueBucket) - rdbStore.commit() +let context = featureAbility.getContext(); +const STORE_CONFIG = { + name: "RdbTest.db", + securityLevel: relationalStore.SecurityLevel.S1 +}; +relationalStore.getRdbStore(context, STORE_CONFIG, async function (err, store) { + if (err) { + console.error(`GetRdbStore failed, err: ${err}`); + return; + } + store.beginTransaction(); + const valueBucket = { + "name": "lisi", + "age": 18, + "salary": 100.5, + "blobType": new Uint8Array([1, 2, 3]), + }; + await store.insert("test", valueBucket); + store.commit(); }) ``` @@ -2051,19 +2062,25 @@ commit():void ```js import featureAbility from '@ohos.ability.featureAbility' -let context = featureAbility.getContext() -const STORE_CONFIG = { name: "RdbTest.db", - securityLevel: data_rdb.SecurityLevel.S1} -data_rdb.getRdbStore(context, STORE_CONFIG, async function (err, rdbStore) { - rdbStore.beginTransaction() - const valueBucket = { - "name": "lisi", - "age": 18, - "salary": 100.5, - "blobType": new Uint8Array([1, 2, 3]), - } - await rdbStore.insert("test", valueBucket) - rdbStore.commit() +let context = featureAbility.getContext(); +const STORE_CONFIG = { + name: "RdbTest.db", + securityLevel: relationalStore.SecurityLevel.S1 +}; +relationalStore.getRdbStore(context, STORE_CONFIG, async function (err, store) { + if (err) { + console.error(`GetRdbStore failed, err: ${err}`); + return; + } + store.beginTransaction(); + const valueBucket = { + "name": "lisi", + "age": 18, + "salary": 100.5, + "blobType": new Uint8Array([1, 2, 3]), + }; + await store.insert("test", valueBucket); + store.commit(); }) ``` @@ -2079,24 +2096,31 @@ rollBack():void ```js import featureAbility from '@ohos.ability.featureAbility' -let context = featureAbility.getContext() -const STORE_CONFIG = { name: "RdbTest.db", - securityLevel: data_rdb.SecurityLevel.S1} -data_rdb.getRdbStore(context, STORE_CONFIG, async function (err, rdbStore) { - try { - rdbStore.beginTransaction() - const valueBucket = { - "id": 1, - "name": "lisi", - "age": 18, - "salary": 100.5, - "blobType": new Uint8Array([1, 2, 3]), - } - await rdbStore.insert("test", valueBucket) - rdbStore.commit() - } catch (e) { - rdbStore.rollBack() - } +let context = featureAbility.getContext(); +const STORE_CONFIG = { + name: "RdbTest.db", + securityLevel: relationalStore.SecurityLevel.S1 +}; +relationalStore.getRdbStore(context, STORE_CONFIG, async function (err, store) { + if (err) { + console.error(`GetRdbStore failed, err: ${err}`); + return; + } + try { + store.beginTransaction() + const valueBucket = { + "id": 1, + "name": "lisi", + "age": 18, + "salary": 100.5, + "blobType": new Uint8Array([1, 2, 3]), + }; + await store.insert("test", valueBucket); + store.commit(); + } catch (err) { + console.error(`Transaction failed, err: ${err}`); + store.rollBack(); + } }) ``` @@ -2118,12 +2142,12 @@ backup(destName:string, callback: AsyncCallback<void>):void **示例:** ```js -rdbStore.backup("dbBackup.db", function(err) { - if (err) { - console.info('Backup failed, err: ' + err) - return - } - console.info('Backup success.') +store.backup("dbBackup.db", function(err) { + if (err) { + console.error(`Backup failed, err: ${err}`); + return; + } + console.info(`Backup success.`); }) ``` @@ -2150,11 +2174,11 @@ backup(destName:string): Promise<void> **示例:** ```js -let promiseBackup = rdbStore.backup("dbBackup.db") +let promiseBackup = store.backup("dbBackup.db"); promiseBackup.then(()=>{ - console.info('Backup success.') + console.info(`Backup success.`); }).catch((err)=>{ - console.info('Backup failed, err: ' + err) + console.error(`Backup failed, err: ${err}`); }) ``` @@ -2176,12 +2200,12 @@ restore(srcName:string, callback: AsyncCallback<void>):void **示例:** ```js -rdbStore.restore("dbBackup.db", function(err) { - if (err) { - console.info('Restore failed, err: ' + err) - return - } - console.info('Restore success.') +store.restore("dbBackup.db", function(err) { + if (err) { + console.error(`Restore failed, err: ${err}`); + return; + } + console.info(`Restore success.`); }) ``` @@ -2208,11 +2232,11 @@ restore(srcName:string): Promise<void> **示例:** ```js -let promiseRestore = rdbStore.restore("dbBackup.db") +let promiseRestore = store.restore("dbBackup.db"); promiseRestore.then(()=>{ - console.info('Restore success.') + console.info(`Restore success.`); }).catch((err)=>{ - console.info('Restore failed, err: ' + err) + console.error(`Restore failed, err: ${err}`); }) ``` @@ -2236,12 +2260,12 @@ setDistributedTables(tables: Array<string>, callback: AsyncCallback<voi **示例:** ```js -rdbStore.setDistributedTables(["EMPLOYEE"], function (err) { - if (err) { - console.info('SetDistributedTables failed, err: ' + err) - return - } - console.info('SetDistributedTables successfully.') +store.setDistributedTables(["EMPLOYEE"], function (err) { + if (err) { + console.error(`SetDistributedTables failed, err: ${err}`); + return; + } + console.info(`SetDistributedTables successfully.`); }) ``` @@ -2270,11 +2294,11 @@ rdbStore.setDistributedTables(["EMPLOYEE"], function (err) { **示例:** ```js -let promise = rdbStore.setDistributedTables(["EMPLOYEE"]) +let promise = store.setDistributedTables(["EMPLOYEE"]); promise.then(() => { - console.info("SetDistributedTables successfully.") + console.info(`SetDistributedTables successfully.`); }).catch((err) => { - console.info("SetDistributedTables failed, err: " + err) + console.error(`SetDistributedTables failed, err: ${err}`); }) ``` @@ -2299,12 +2323,12 @@ obtainDistributedTableName(device: string, table: string, callback: AsyncCallbac **示例:** ```js -rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, tableName) { +store.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, tableName) { if (err) { - console.info('ObtainDistributedTableName failed, err: ' + err) - return + console.error(`ObtainDistributedTableName failed, err: ${err}`); + return; } - console.info('ObtainDistributedTableName successfully, tableName=.' + tableName) + console.info(`ObtainDistributedTableName successfully, tableName= ${tableName}`); }) ``` @@ -2334,11 +2358,11 @@ rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, **示例:** ```js -let promise = rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE") +let promise = store.obtainDistributedTableName("12345678abcde", "EMPLOYEE"); promise.then((tableName) => { - console.info('ObtainDistributedTableName successfully, tableName= ' + tableName) + console.info(`ObtainDistributedTableName successfully, tableName= ${tableName}`); }).catch((err) => { - console.info('ObtainDistributedTableName failed, err: ' + err) + console.error(`ObtainDistributedTableName failed, err: ${err}`); }) ``` @@ -2363,17 +2387,17 @@ sync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback<Array **示例:** ```js -let predicates = new data_rdb.RdbPredicates('EMPLOYEE') -predicates.inDevices(['12345678abcde']) -rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates, function (err, result) { - if (err) { - console.log('Sync failed, err: ' + err) - return - } - console.log('Sync done.') - for (let i = 0; i < result.length; i++) { - console.log('device=' + result[i][0] + ' status=' + result[i][1]) - } +let predicates = new relationalStore.RdbPredicates('EMPLOYEE'); +predicates.inDevices(['12345678abcde']); +store.sync(relationalStore.SyncMode.SYNC_MODE_PUSH, predicates, function (err, result) { + if (err) { + console.error(`Sync failed, err: ${err}`); + return; + } + console.info(`Sync done.`); + for (let i = 0; i < result.length; i++) { + console.info(`device= ${result[i][0]}, status= ${result[i][1]}`); + } }) ``` @@ -2403,16 +2427,16 @@ rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates, function (err, resul **示例:** ```js -let predicates = new data_rdb.RdbPredicates('EMPLOYEE') -predicates.inDevices(['12345678abcde']) -let promise = rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates) +let predicates = new relationalStore.RdbPredicates('EMPLOYEE'); +predicates.inDevices(['12345678abcde']); +let promise = store.sync(relationalStore.SyncMode.SYNC_MODE_PUSH, predicates); promise.then((resultSet) =>{ - console.log('Sync done.') - for (let i = 0; i < resultSet.length; i++) { - console.log('device=' + resultSet[i][0] + ' status=' + resultSet[i][1]) - } + console.info(`Sync done.`); + for (let i = 0; i < resultSet.length; i++) { + console.info(`device= ${result[i][0]}, status= ${result[i][1]}`); + } }).catch((err) => { - console.log('Sync failed') + console.error(`Sync failed, err: ${err}`); }) ``` @@ -2436,14 +2460,14 @@ on(event: 'dataChange', type: SubscribeType, observer: Callback<Array<stri ```js function storeObserver(devices) { - for (let i = 0; i < devices.length; i++) { - console.log('device=' + devices[i] + ' data changed') - } + for (let i = 0; i < devices.length; i++) { + console.info(`device= ${devices[i]} data changed`); + } } try { - rdbStore.on('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver) + store.on('dataChange', relationalStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver); } catch (err) { - console.log('Register observer failed') + console.error(`Register observer failed, err: ${err}`); } ``` @@ -2467,14 +2491,14 @@ off(event:'dataChange', type: SubscribeType, observer: Callback<Array<stri ```js function storeObserver(devices) { - for (let i = 0; i < devices.length; i++) { - console.log('device=' + devices[i] + ' data changed') - } + for (let i = 0; i < devices.length; i++) { + console.info(`device= ${devices[i]} data changed`); + } } try { - rdbStore.off('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver) + store.off('dataChange', relationalStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver); } catch (err) { - console.log('Unregister observer failed') + console.error(`Unregister observer failed, err: ${err}`); } ``` @@ -2484,16 +2508,15 @@ try { ### 使用说明 -需要通过[RdbStore.query()](#query)获取resultSet对象。 +首先需要获取resultSet对象。 ```js -import dataRdb from '@ohos.data.rdb'; -let predicates = new dataRdb.RdbPredicates("EMPLOYEE"); +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); predicates.equalTo("AGE", 18); -let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); +let promise = store.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); promise.then((resultSet) => { - console.log(TAG + "resultSet columnNames:" + resultSet.columnNames); - console.log(TAG + "resultSet columnCount:" + resultSet.columnCount); + console.info(`resultSet columnNames: ${resultSet.columnNames}`); + console.info(`resultSet columnCount: ${resultSet.columnCount}`); }); ``` @@ -2618,13 +2641,13 @@ goTo(offset:number): boolean **示例:** ```js -let predicates = new dataRdb.RdbPredicates("EMPLOYEE"); -let promise= rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +let promise= store.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); promise.then((resultSet) => { - resultSet.goTo(1); - resultSet.close(); + resultSet.goTo(1); + resultSet.close(); }).catch((err) => { - console.log('query failed'); + console.error(`query failed, err: ${err}`); }); ``` @@ -2659,13 +2682,13 @@ goToRow(position: number): boolean **示例:** ```js -let predicates = new dataRdb.RdbPredicates("EMPLOYEE"); -let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +let promise = store.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); promise.then((resultSet) => { - resultSet.(5); - resultSet.close(); + resultSet.(5); + resultSet.close(); }).catch((err) => { - console.log('query failed'); + console.error(`query failed, err: ${err}`); }); ``` @@ -2695,13 +2718,13 @@ goToFirstRow(): boolean **示例:** ```js -let predicates = new dataRdb.RdbPredicates("EMPLOYEE"); -let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +let promise = store.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); promise.then((resultSet) => { - resultSet.goToFirstRow(); - resultSet.close(); + resultSet.goToFirstRow(); + resultSet.close(); }).catch((err) => { - console.log('query failed'); + console.error(`query failed, err: ${err}`); }); ``` @@ -2730,13 +2753,13 @@ goToLastRow(): boolean **示例:** ```js -let predicates = new dataRdb.RdbPredicates("EMPLOYEE"); -let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +let promise = store.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); promise.then((resultSet) => { - resultSet.goToLastRow(); - resultSet.close(); + resultSet.goToLastRow(); + resultSet.close(); }).catch((err) => { - console.log('query failed'); + console.error(`query failed, err: ${err}`); }); ``` @@ -2765,13 +2788,13 @@ goToNextRow(): boolean **示例:** ```js -let predicates = new dataRdb.RdbPredicates("EMPLOYEE"); -let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +let promise = store.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); promise.then((resultSet) => { - resultSet.goToNextRow(); - resultSet.close(); + resultSet.goToNextRow(); + resultSet.close(); }).catch((err) => { - console.log('query failed'); + console.error(`query failed, err: ${err}`); }); ``` @@ -2800,13 +2823,13 @@ goToPreviousRow(): boolean **示例:** ```js -let predicates = new dataRdb.RdbPredicates("EMPLOYEE"); -let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +let promise = store.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); promise.then((resultSet) => { - resultSet.goToPreviousRow(); - resultSet.close(); + resultSet.goToPreviousRow(); + resultSet.close(); }).catch((err) => { - console.log('query failed'); + console.error(`query failed, err: ${err}`); }); ``` @@ -2991,12 +3014,12 @@ close(): void **示例:** ```js -let predicatesClose = new dataRdb.RdbPredicates("EMPLOYEE"); -let promiseClose = rdbStore.query(predicatesClose, ["ID", "NAME", "AGE", "SALARY", "CODES"]); +let predicatesClose = new relationalStore.RdbPredicates("EMPLOYEE"); +let promiseClose = store.query(predicatesClose, ["ID", "NAME", "AGE", "SALARY", "CODES"]); promiseClose.then((resultSet) => { - resultSet.close(); + resultSet.close(); }).catch((err) => { - console.log('resultset close failed'); + console.error(`resultset close failed, err: ${err}`); }); ```