未验证 提交 275daafd 编写于 作者: O openharmony_ci 提交者: Gitee

!14327 整改relationalStore api以及开发指南文档格式

Merge pull request !14327 from LeiiYB/monthly_20221018
......@@ -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&lt;RdbStoreV9&gt; | 获得一个相关的RdbStoreV9,操作关系型数据库,用户可以根据自己的需求配置RdbStoreV9的参数,然后通过RdbStoreV9调用相关接口可以执行相关的数据操作,使用Promise异步回调。<br/>-context:应用程序或功能的上下文。<br/>-config:与此RDB存储相关的数据库配置。<br/>-version:数据库版本。目前暂不支持通过version自动识别数据库升级降级操作,只能由开发者自行维护。 |
| deleteRdbStoreV9(context: Context, name: string): Promise&lt;void&gt; | 使用指定的数据库文件配置删除数据库,使用Promise异步回调。<br/>-context:应用程序或功能的上下文。<br/>-name:数据库名称。 |
| getRdbStore(context: Context, config: StoreConfig): Promise&lt;RdbStore&gt; | 获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,使用Promise异步回调。<br/>-context:应用上下文。<br/>-config:与此RDB存储相关的数据库配置。 |
| deleteRdbStore(context: Context, name: string): Promise&lt;void&gt; | 使用指定的数据库文件配置删除数据库,使用Promise异步回调。<br/>-context:应用上下文。<br/>-name:数据库名称。 |
### 数据库的增删改查
......@@ -33,29 +33,29 @@
| 类名 | 接口名 | 描述 |
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStoreV9 | insert(table: string, values: ValuesBucket): Promise&lt;number&gt; | 向目标表中插入一行数据,使用Promise异步回调。<br>如果操作成功,返回行ID;否则返回-1。<br/>-table:指定的目标表名。<br/>-values:表示要插入到表中的数据行。 |
| RdbStore | insert(table: string, values: ValuesBucket): Promise&lt;number&gt; | 向目标表中插入一行数据,使用Promise异步回调。<br>如果操作成功,返回行ID;否则返回-1。<br/>-table:指定的目标表名。<br/>-values:表示要插入到表中的数据行。 |
- **更新**
调用更新接口,传入要更新的数据,并通过RdbPredicatesV9指定更新条件。该接口的返回值表示更新操作影响的行数。如果更新失败,则返回0。
调用更新接口,传入要更新的数据,并通过RdbPredicates指定更新条件。该接口的返回值表示更新操作影响的行数。如果更新失败,则返回0。
**表3** 数据库更新API
| 类名 | 接口名 | 描述 |
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStoreV9 | update(values: ValuesBucket, predicates: RdbPredicatesV9): Promise&lt;number&gt; | 根据RdbPredicatesV9的指定实例对象更新数据库中的数据,使用Promise异步回调。<br>返回受影响的行数。<br/>-values:以ValuesBucket存储的要更新的数据。<br/>-predicates:表示RdbPredicatesV9的实例对象指定的更新条件。 |
| RdbStore | update(values: ValuesBucket, predicates: RdbPredicates): Promise&lt;number&gt; | 根据RdbPredicates的指定实例对象更新数据库中的数据,使用Promise异步回调。<br>返回受影响的行数。<br/>-values:以ValuesBucket存储的要更新的数据。<br/>-predicates:表示RdbPredicates的实例对象指定的更新条件。 |
- **删除**
调用删除接口,通过RdbPredicatesV9指定删除条件。该接口的返回值表示删除的数据行数,可根据此值判断是否删除成功。如果删除失败,则返回0。
调用删除接口,通过RdbPredicates指定删除条件。该接口的返回值表示删除的数据行数,可根据此值判断是否删除成功。如果删除失败,则返回0。
**表4** 数据库删除API
| 类名 | 接口名 | 描述 |
| ---------- | ---------------------------------------------------------- | ------------------------------------------------------------ |
| RdbStoreV9 | delete(predicates: RdbPredicatesV9): Promise&lt;number&gt; | 根据RdbPredicatesV9的指定实例对象从数据库中删除数据,使用Promise异步回调。<br>返回受影响的行数。 <br/>-predicates:RdbPredicatesV9的实例对象指定的删除条件。 |
| RdbStore | delete(predicates: RdbPredicates): Promise&lt;number&gt; | 根据RdbPredicates的指定实例对象从数据库中删除数据,使用Promise异步回调。<br>返回受影响的行数。 <br/>-predicates:RdbPredicates的实例对象指定的删除条件。 |
- **查询**
......@@ -66,35 +66,34 @@
**表5** 数据库查询API
| 类名 | 接口名 | 描述 |
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStoreV9 | query(predicates: RdbPredicatesV9, columns?: Array&lt;string&gt;): Promise&lt;ResultSetV9&gt; | 根据指定条件查询数据库中的数据,使用Promise异步回调。<br/>-predicates:表示RdbPredicatesV9的实例对象指定的查询条件。<br/>-columns:表示要查询的列。如果值为空,则查询应用于所有列。 |
| RdbStoreV9 | querySql(sql: string, bindArgs?: Array&lt;ValueType&gt;): Promise&lt;ResultSetV9&gt; | 根据指定SQL语句查询数据库中的数据,使用Promise异步回调。<br/>-sql:指定要查询的SQL语句。<br/>-bindArgs:SQL语句中参数的值。 |
| RdbStoreV9 | remoteQuery(device: string, table: string, predicates: RdbPredicatesV9, columns: Array&lt;string&gt;): Promise&lt;ResultSetV9&gt; | 根据指定条件查询指定远程设备数据库中的数据。使用Promise异步回调。<br/>-device:指定远程查询的设备networkId。<br/>-table:指定远程查询的表名。<br/>-predicates:表示RdbPredicatesV9的实例对象,指定查询的条件。<br/>-columns:表示要查询的列。如果值为空,则查询应用于所有列。 |
| 类名 | 接口名 | 描述 |
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore | query(predicates: RdbPredicates, columns?: Array&lt;string&gt;): Promise&lt;ResultSet&gt; | 根据指定条件查询数据库中的数据,使用Promise异步回调。<br/>-predicates:表示RdbPredicates的实例对象指定的查询条件。<br/>-columns:表示要查询的列。如果值为空,则查询应用于所有列。 |
| RdbStore | querySql(sql: string, bindArgs?: Array&lt;ValueType&gt;): Promise&lt;ResultSet&gt; | 根据指定SQL语句查询数据库中的数据,使用Promise异步回调。<br/>-sql:指定要查询的SQL语句。<br/>-bindArgs:SQL语句中参数的值。 |
| RdbStore | remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array&lt;string&gt;): Promise&lt;ResultSet&gt; | 根据指定条件查询指定远程设备数据库中的数据。使用Promise异步回调。<br/>-device:指定远程查询的设备networkId。<br/>-table:指定远程查询的表名。<br/>-predicates:表示RdbPredicates的实例对象,指定查询的条件。<br/>-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且值等于指定值的字段。<br/>-field:数据库表中的列名。<br/>-value:指示要与谓词匹配的值。<br/>-RdbPredicatesV9:返回与指定字段匹配的谓词。 |
| RdbPredicatesV9 | notEqualTo(field: string, value: ValueType): RdbPredicatesV9 | 配置谓词以匹配数据字段为ValueType且值不等于指定值的字段。<br/>-field:数据库表中的列名。<br/>-value:指示要与谓词匹配的值。<br/>-RdbPredicatesV9:返回与指定字段匹配的谓词。 |
| RdbPredicatesV9 | or(): RdbPredicatesV9 | 将或条件添加到谓词中。<br/>-RdbPredicatesV9:返回带有或条件的谓词。 |
| RdbPredicatesV9 | and(): RdbPredicatesV9 | 向谓词添加和条件。<br/>-RdbPredicatesV9:返回带有和条件的谓词。 |
| RdbPredicatesV9 | contains(field: string, value: string): RdbPredicatesV9 | 配置谓词以匹配数据字段为String且value包含指定值的字段。<br/>-field:数据库表中的列名。<br/>-value:指示要与谓词匹配的值。<br/>-RdbPredicatesV9:返回带有包含条件的谓词。 |
| 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:返回带有包含条件的谓词。 |
### 查询结果集的使用
关系型数据库提供了查询返回的结果集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\<string>): Promise\<void> | 设置分布式列表,使用Promise异步回调。<br/>-tables:要设置的分布式列表表名。 |
| RdbStore | setDistributedTables(tables: Array\<string>): Promise\<void> | 设置分布式列表,使用Promise异步回调。<br/>-tables:要设置的分布式列表表名。 |
**根据本地表名获取指定远程设备的分布式表名**
......@@ -135,7 +134,7 @@
| 类名 | 接口名 | 描述 |
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStoreV9 | obtainDistributedTableName(device: string, table: string): Promise\<string> | 根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。<br/>-device:远程设备。<br/>-table:本地表名。 |
| RdbStore | obtainDistributedTableName(device: string, table: string): Promise\<string> | 根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。<br/>-device:远程设备。<br/>-table:本地表名。 |
**在设备之间同步数据**
......@@ -143,7 +142,7 @@
| 类名 | 接口名 | 描述 |
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStoreV9 | 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表示成功,其他值表示失败。 |
| 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表示成功,其他值表示失败。 |
**注册数据库的观察者**
......@@ -151,7 +150,7 @@
| 类名 | 接口名 | 描述 |
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStoreV9 | on(event: 'dataChange', type: SubscribeType, observer: Callback\<Array\<string>>): void | 注册数据库的观察者。当分布式数据库中的数据发生更改时,将调用回调。<br/>-type:订阅类型;SUBSCRIBE_TYPE_REMOTE 订阅远程数据更改。<br/>-observer:指分布式数据库中数据更改事件的观察者。 |
| RdbStore | on(event: 'dataChange', type: SubscribeType, observer: Callback\<Array\<string>>): void | 注册数据库的观察者。当分布式数据库中的数据发生更改时,将调用回调。<br/>-type:订阅类型;SUBSCRIBE_TYPE_REMOTE 订阅远程数据更改。<br/>-observer:指分布式数据库中数据更改事件的观察者。 |
**从数据库中删除指定类型的指定观察者**
......@@ -159,7 +158,7 @@
| 类名 | 接口名 | 描述 |
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStoreV9 | off(event:'dataChange', type: SubscribeType, observer: Callback\<Array\<string>>): void; | 从数据库中删除指定类型的指定观察者,使用callback异步回调。<br/>-type:订阅类型;SUBSCRIBE_TYPE_REMOTE 订阅远程数据更改。<br/>-observer:指已注册的数据更改观察者。 |
| RdbStore | off(event:'dataChange', type: SubscribeType, observer: Callback\<Array\<string>>): void; | 从数据库中删除指定类型的指定观察者,使用callback异步回调。<br/>-type:订阅类型;SUBSCRIBE_TYPE_REMOTE 订阅远程数据更改。<br/>-observer:指已注册的数据更改观察者。 |
### 数据库的备份和恢复
......@@ -169,7 +168,7 @@
| 类名 | 接口名 | 描述 |
| ---------- | --------------------------------------------- | ------------------------------------------------------------ |
| RdbStoreV9 | backup(destName: string): Promise&lt;void&gt; | 以指定名称备份数据库,使用Promise异步回调。<br/>-destName:指定数据库的备份文件名。 |
| RdbStore | backup(destName: string): Promise&lt;void&gt; | 以指定名称备份数据库,使用Promise异步回调。<br/>-destName:指定数据库的备份文件名。 |
**恢复**
......@@ -177,17 +176,17 @@
| 类名 | 接口名 | 描述 |
| ---------- | --------------------------------------------- | ------------------------------------------------------------ |
| RdbStoreV9 | restore(srcName: string): Promise&lt;void&gt; | 从指定的数据库备份文件恢复数据库,使用Promise异步回调。<br/>-srcName:指定数据库的备份文件名。 |
| RdbStore | restore(srcName: string): Promise&lt;void&gt; | 从指定的数据库备份文件恢复数据库,使用Promise异步回调。<br/>-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}`);
})
```
```
## 相关实例
针对关系型数据库开发,有以下相关实例可供参考:
......
......@@ -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&lt;RdbStore&gt;): void
......@@ -48,51 +48,55 @@ getRdbStore(context: Context, config: StoreConfig, callback: AsyncCallback&lt;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&lt;RdbStore&gt;
......@@ -127,49 +131,52 @@ getRdbStore(context: Context, config: StoreConfig): Promise&lt;RdbStore&gt;
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&lt;void&gt;): void
......@@ -198,43 +205,39 @@ deleteRdbStore(context: Context, name: string, callback: AsyncCallback&lt;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&lt;void&gt;
......@@ -268,38 +271,34 @@ deleteRdbStore(context: Context, name: string): Promise&lt;void&gt;
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&lt;string&gt;): 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&lt;string&gt;): 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&lt;ValueType&gt;): 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&lt;ValueType&gt;): 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&lt;number&gt
```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&lt;number&gt;
......@@ -1271,19 +1272,20 @@ insert(table: string, values: ValuesBucket):Promise&lt;number&gt;
```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&lt;ValuesBucket&gt;, callback: AsyncCallback&lt;number&gt;):void
......@@ -1304,31 +1306,31 @@ batchInsert(table: string, values: Array&lt;ValuesBucket&gt;, 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&lt;ValuesBucket&gt;):Promise&lt;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&lt;number&gt;
......@@ -1445,21 +1448,22 @@ update(values: ValuesBucket, predicates: RdbPredicates):Promise&lt;number&gt;
```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&lt;number&gt;):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&lt;number&gt;):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&lt;number&gt;
**示例:**
```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&lt;string&gt;, 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&lt;string&gt;):Promise&lt;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&lt;ValueType&gt;, 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&lt;ValueType&gt;):Promise&lt;ResultSet&gt
**示例:**
```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&lt;ValueType&gt;, 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&lt;ValueType&gt;):Promise&lt;void&gt;
```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&lt;void&gt;):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&lt;void&gt;
**示例:**
```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&lt;void&gt;):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&lt;void&gt;
**示例:**
```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&lt;string&gt;, callback: AsyncCallback&lt;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&lt;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&lt;Array&lt;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&lt;Array&lt;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}`);
});
```
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册