js-apis-data-rdb.md 50.4 KB
Newer Older
Z
zengyawen 已提交
1
# 关系型数据库
Z
zengyawen 已提交
2

Z
zengyawen 已提交
3 4
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zengyawen 已提交
5

6

Z
zengyawen 已提交
7 8

## 导入模块
Z
zengyawen 已提交
9 10

```
P
PaDoBoo 已提交
11
import data_rdb from '@ohos.data.rdb'
Z
zengyawen 已提交
12 13 14
```


P
PaDoBoo 已提交
15
## data_rdb.getRdbStore
Z
zengyawen 已提交
16

W
wuyongning 已提交
17
getRdbStore(context: Context, config: StoreConfig, version: number, callback: AsyncCallback<RdbStore>): void
Z
zengyawen 已提交
18 19 20

获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,结果以callback形式返回。

W
wuyongning 已提交
21
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
22

Z
zengyawen 已提交
23 24 25
**参数**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
26
| context<sup>8+</sup> | Context | 是 | 应用程序或功能的上下文 |
Z
zengyawen 已提交
27 28 29
| config | [StoreConfig](#storeconfig) | 是 | 与此RDB存储相关的数据库配置。 |
| version | number | 是 | 数据库版本。 |
| callback | AsyncCallback&lt;[RdbStore](#rdbstore)&gt; | 是 | 指定callback回调函数。返回一个RdbStore。 |
Z
zengyawen 已提交
30

Z
zengyawen 已提交
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
**示例**

```
import data_rdb from '@ohos.data.rdb'
const STORE_CONFIG = { name: "RdbTest.db"}
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)"
data_rdb.getRdbStore(STORE_CONFIG, 1, function (err, rdbStore) {
    rdbStore.executeSql(SQL_CREATE_TABLE)
    console.info('create table done.')
})
```

API9的示例请参考如下代码:

```
import Ability from '@ohos.application.Ability'
import data_rdb from '@ohos.data.rdb'
export default class MainAbility extends Ability {
    const STORE_CONFIG = { name: "RdbTest.db"}
    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)"
    data_rdb.getRdbStore(this.context, STORE_CONFIG, 1, function (err, rdbStore) {
        rdbStore.executeSql(SQL_CREATE_TABLE)
        console.info('create table done.')
    })
}
```
Z
zengyawen 已提交
57

P
PaDoBoo 已提交
58
## data_rdb.getRdbStore
Z
zengyawen 已提交
59

W
wuyongning 已提交
60
getRdbStore(context: Context, config: StoreConfig, version: number): Promise&lt;RdbStore&gt;
Z
zengyawen 已提交
61 62 63

获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,结果以Promise形式返回。

W
wuyongning 已提交
64
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
65

Z
zengyawen 已提交
66
**参数**
Z
zengyawen 已提交
67

Z
zengyawen 已提交
68 69
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
70
| context<sup>8+</sup> | Context | 是 | 应用程序或功能的上下文 |
Z
zengyawen 已提交
71 72
| config | [StoreConfig](#storeconfig) | 是 | 与此RDB存储相关的数据库配置。 |
| version | number | 是 | 数据库版本。 |
Z
zengyawen 已提交
73

Z
zengyawen 已提交
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
**返回值**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[RdbStore](#rdbstore)&gt; | 指定Promise回调函数。返回一个RdbStore。 |

**示例**

```
import data_rdb from '@ohos.data.rdb'
const STORE_CONFIG = { name: "RdbTest.db" }
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 promisegetRdb = data_rdb.getRdbStore(STORE_CONFIG, 1);
promisegetRdb.then(async (rdbStore) => {
    let promiseExecSql = rdbStore.executeSql(SQL_CREATE_TABLE, null)
    promiseExecSql.then(() => {
        console.info('executeSql creat done.')
    }).catch((err) => {
        console.log("executeSql creat err.")
    })
}).catch((err) => {
    console.log("getRdbStore err.")
})
```

API9的示例请参考如下代码:

```
import Ability from '@ohos.application.Ability'
import data_rdb from '@ohos.data.rdb'
export default class MainAbility extends Ability {
    const STORE_CONFIG = { name: "RdbTest.db" }
    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 promisegetRdb = data_rdb.getRdbStore(this.context, STORE_CONFIG, 1);
    promisegetRdb.then(async (rdbStore) => {
        let promiseExecSql = rdbStore.executeSql(SQL_CREATE_TABLE, null)
        promiseExecSql.then(() => {
            console.info('executeSql creat done.')
        }).catch((err) => {
            console.log("executeSql creat err.")
        })
    }).catch((err) => {
        console.log("getRdbStore err.")
    })
}
```
Z
zengyawen 已提交
120

P
PaDoBoo 已提交
121
## data_rdb.deleteRdbStore
Z
zengyawen 已提交
122

W
wuyongning 已提交
123
deleteRdbStore(context: Context, name: string, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
124 125 126

删除数据库,结果以callback形式返回。

W
wuyongning 已提交
127
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
128

Z
zengyawen 已提交
129
**参数**
Z
zengyawen 已提交
130 131
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
132
| context<sup>8+</sup> | Context | 是 | 应用程序或功能的上下文 |
Z
zengyawen 已提交
133
| name | string | 是 | 数据库名称。 |
W
wuyongning 已提交
134
| callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |
Z
zengyawen 已提交
135

Z
zengyawen 已提交
136
**示例**
Z
zengyawen 已提交
137
  ```
138 139 140 141
  import data_rdb from '@ohos.data.rdb'
  data_rdb.deleteRdbStore("RdbTest.db", function (err, rdbStore) {
      console.info('delete store done.')
  })
Z
zengyawen 已提交
142 143
  ```

Z
zengyawen 已提交
144 145 146 147 148 149 150 151 152 153 154 155
API9的示例请参考如下代码:

```
import Ability from '@ohos.application.Ability'
import data_rdb from '@ohos.data.rdb'
export default class MainAbility extends Ability {
    data_rdb.deleteRdbStore(this.context, "RdbTest.db", function (err, rdbStore) {
        console.info('delete store done.')
    })
}
```

P
PaDoBoo 已提交
156
## data_rdb.deleteRdbStore
Z
zengyawen 已提交
157

W
wuyongning 已提交
158
deleteRdbStore(context: Context, name: string): Promise&lt;void&gt;
Z
zengyawen 已提交
159 160 161

使用指定的数据库文件配置删除数据库,结果以Promise形式返回。

W
wuyongning 已提交
162
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
163

Z
zengyawen 已提交
164
**参数**
Z
zengyawen 已提交
165 166
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
167
| context<sup>8+</sup> | Context | 是 | 应用程序或功能的上下文 |
Z
zengyawen 已提交
168
| name | string | 是 | 数据库名称。 |
Z
zengyawen 已提交
169

Z
zengyawen 已提交
170
**返回值**
Z
zengyawen 已提交
171 172
| 类型 | 说明 |
| -------- | -------- |
W
wuyongning 已提交
173
| Promise&lt;void&gt; | 指定Promise回调函数。 |
Z
zengyawen 已提交
174

Z
zengyawen 已提交
175
**示例**
Z
zengyawen 已提交
176
  ```
177 178 179 180 181 182 183
  import data_rdb from '@ohos.data.rdb'
  let promisedeleteRdb = data_rdb.deleteRdbStore("RdbTest.db")
  promisedeleteRdb.then(()=>{
      console.info('delete store done.')
  }).catch((err) => {
      console.log("deleteRdbStore err.")
  })
Z
zengyawen 已提交
184 185
  ```

Z
zengyawen 已提交
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
API9的示例请参考如下代码:

```
import Ability from '@ohos.application.Ability'
import data_rdb from '@ohos.data.rdb'
export default class MainAbility extends Ability {
    let promisedeleteRdb = data_rdb.deleteRdbStore(this.context, "RdbTest.db")
    promisedeleteRdb.then(()=>{
        console.info('delete store done.')
    }).catch((err) => {
        console.log("deleteRdbStore err.")
    })
}
```

Z
zengyawen 已提交
201
## RdbPredicates
Z
zengyawen 已提交
202 203 204 205

表示关系型数据库(RDB)的谓词。该类确定RDB中条件表达式的值是true还是false。


Z
zengyawen 已提交
206 207 208 209
### constructor

constructor(name: string)

Z
zengyawen 已提交
210 211 212

构造函数。

W
wuyongning 已提交
213
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
214

Z
zengyawen 已提交
215
**参数**
Z
zengyawen 已提交
216 217 218
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 数据库表名。 |
Z
zengyawen 已提交
219

Z
zengyawen 已提交
220
**示例**
Z
zengyawen 已提交
221
  ```
P
PaDoBoo 已提交
222
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
223 224
  ```

Z
zengyawen 已提交
225
### inDevices<sup>8+</sup>
S
sun-dou 已提交
226

W
wuyongning 已提交
227
inDevices(devices: Array&lt;string&gt;): RdbPredicates
S
sun-dou 已提交
228 229 230 231


同步分布式数据库时指定组网内的远程设备。

W
wuyongning 已提交
232
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
S
sun-dou 已提交
233

Z
zengyawen 已提交
234
**参数**
Z
zengyawen 已提交
235 236 237
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| devices | Array&lt;string&gt; | 是 | 指定的组网内的远程设备ID。 |
S
sun-dou 已提交
238

Z
zengyawen 已提交
239
**返回值**
Z
zengyawen 已提交
240 241 242
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
S
sun-dou 已提交
243

Z
zengyawen 已提交
244
**示例**
S
sun-dou 已提交
245 246 247 248 249
  ```
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
  predicate.inDevices(['12345678abcde'])
  ```

W
wuyongning 已提交
250
### inAllDevices<sup>8+</sup>
S
sun-dou 已提交
251

W
wuyongning 已提交
252
inAllDevices(): RdbPredicates
S
sun-dou 已提交
253 254 255 256


同步分布式数据库时连接到组网内的所有远程设备。

W
wuyongning 已提交
257
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
S
sun-dou 已提交
258

Z
zengyawen 已提交
259
**返回值**
Z
zengyawen 已提交
260 261 262
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
S
sun-dou 已提交
263

Z
zengyawen 已提交
264
**示例**
S
sun-dou 已提交
265 266 267 268
  ```
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
  predicates.inAllDevices()
  ```
Z
zengyawen 已提交
269 270 271 272 273

### equalTo

equalTo(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
274 275 276

配置谓词以匹配数据字段为ValueType且值等于指定值的字段。

W
wuyongning 已提交
277
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
278

Z
zengyawen 已提交
279
**参数**
Z
zengyawen 已提交
280 281 282 283
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
284

Z
zengyawen 已提交
285
**返回值**
Z
zengyawen 已提交
286 287 288
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
289

Z
zengyawen 已提交
290
**示例**
Z
zengyawen 已提交
291
  ```
P
PaDoBoo 已提交
292
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
293 294 295 296 297 298 299 300
  predicates.equalTo("NAME", "lisi")
  ```


### notEqualTo

notEqualTo(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
301 302 303

配置谓词以匹配数据字段为ValueType且值不等于指定值的字段。

W
wuyongning 已提交
304
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
305

Z
zengyawen 已提交
306
**参数**
Z
zengyawen 已提交
307 308 309 310
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
311

Z
zengyawen 已提交
312
**返回值**
Z
zengyawen 已提交
313 314 315
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
316

Z
zengyawen 已提交
317
**示例**
Z
zengyawen 已提交
318
  ```
P
PaDoBoo 已提交
319
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
320 321 322 323 324 325 326 327
  predicates.notEqualTo("NAME", "lisi")
  ```


### beginWrap

beginWrap(): RdbPredicates

Z
zengyawen 已提交
328 329 330

向谓词添加左括号。

W
wuyongning 已提交
331
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
332

Z
zengyawen 已提交
333
**返回值**
Z
zengyawen 已提交
334 335 336
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回带有左括号的Rdb谓词。 |
Z
zengyawen 已提交
337

Z
zengyawen 已提交
338
**示例**
Z
zengyawen 已提交
339
  ```
P
PaDoBoo 已提交
340
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
341 342 343 344 345 346 347
  predicates.equalTo("NAME", "lisi")
      .beginWrap()
      .equalTo("AGE", 18)
      .or()
      .equalTo("SALARY", 200.5)
      .endWrap()
  ```
Z
zengyawen 已提交
348 349


Z
zengyawen 已提交
350
### endWrap
Z
zengyawen 已提交
351

Z
zengyawen 已提交
352
endWrap(): RdbPredicates
Z
zengyawen 已提交
353 354 355 356


向谓词添加右括号。

W
wuyongning 已提交
357
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
358

Z
zengyawen 已提交
359
**返回值**
Z
zengyawen 已提交
360 361 362
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回带有右括号的Rdb谓词。 |
Z
zengyawen 已提交
363

Z
zengyawen 已提交
364
**示例**
Z
zengyawen 已提交
365
  ```
P
PaDoBoo 已提交
366
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
367 368 369 370 371 372 373
  predicates.equalTo("NAME", "lisi")
      .beginWrap()
      .equalTo("AGE", 18)
      .or()
      .equalTo("SALARY", 200.5)
      .endWrap()
  ```
Z
zengyawen 已提交
374 375


Z
zengyawen 已提交
376
### or
Z
zengyawen 已提交
377

Z
zengyawen 已提交
378
or(): RdbPredicates
Z
zengyawen 已提交
379 380 381 382


将或条件添加到谓词中。

W
wuyongning 已提交
383
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
384

Z
zengyawen 已提交
385
**返回值**
Z
zengyawen 已提交
386 387 388
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回带有或条件的Rdb谓词。 |
Z
zengyawen 已提交
389

Z
zengyawen 已提交
390
**示例**
Z
zengyawen 已提交
391
  ```
P
PaDoBoo 已提交
392
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
393 394 395 396
  predicates.equalTo("NAME", "Lisa")
      .or()
      .equalTo("NAME", "Rose")
  ```
Z
zengyawen 已提交
397 398


Z
zengyawen 已提交
399
### and
Z
zengyawen 已提交
400

Z
zengyawen 已提交
401
and(): RdbPredicates
Z
zengyawen 已提交
402 403 404 405


向谓词添加和条件。

W
wuyongning 已提交
406
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
407

Z
zengyawen 已提交
408
**返回值**
Z
zengyawen 已提交
409 410 411
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回带有和条件的Rdb谓词。 |
Z
zengyawen 已提交
412

Z
zengyawen 已提交
413
**示例**
Z
zengyawen 已提交
414
  ```
P
PaDoBoo 已提交
415
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
416 417 418 419
  predicates.equalTo("NAME", "Lisa")
      .and()
      .equalTo("SALARY", 200.5)
  ```
Z
zengyawen 已提交
420 421


Z
zengyawen 已提交
422
### contains
Z
zengyawen 已提交
423

W
wuyongning 已提交
424
contains(field: string, value: string): RdbPredicates
Z
zengyawen 已提交
425 426 427

配置谓词以匹配数据字段为String且value包含指定值的字段。

W
wuyongning 已提交
428
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
429

Z
zengyawen 已提交
430
**参数**
Z
zengyawen 已提交
431 432 433 434
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
435

Z
zengyawen 已提交
436
**返回值**
Z
zengyawen 已提交
437 438 439
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
440

Z
zengyawen 已提交
441
**示例**
Z
zengyawen 已提交
442
  ```
P
PaDoBoo 已提交
443
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
444 445 446 447 448 449 450 451
  predicates.contains("NAME", "os")
  ```


### beginsWith

beginsWith(field: string, value: string): RdbPredicates

Z
zengyawen 已提交
452 453 454

配置谓词以匹配数据字段为String且值以指定字符串开头的字段。

W
wuyongning 已提交
455
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
456

Z
zengyawen 已提交
457
**参数**
Z
zengyawen 已提交
458 459 460 461
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
462

Z
zengyawen 已提交
463
**返回值**
Z
zengyawen 已提交
464 465 466
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
467

Z
zengyawen 已提交
468
**示例**
Z
zengyawen 已提交
469
  ```
P
PaDoBoo 已提交
470
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
471 472 473 474 475 476 477 478
  predicates.beginsWith("NAME", "os")
  ```


### endsWith

endsWith(field: string, value: string): RdbPredicates

Z
zengyawen 已提交
479 480 481

配置谓词以匹配数据字段为String且值以指定字符串结尾的字段。

W
wuyongning 已提交
482
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
483

Z
zengyawen 已提交
484
**参数**
Z
zengyawen 已提交
485 486 487 488
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
489

Z
zengyawen 已提交
490
**返回值**
Z
zengyawen 已提交
491 492 493
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
494

Z
zengyawen 已提交
495
**示例**
Z
zengyawen 已提交
496
  ```
P
PaDoBoo 已提交
497
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
498 499 500 501 502 503 504 505
  predicates.endsWith("NAME", "se")
  ```


### isNull

isNull(field: string): RdbPredicates

Z
zengyawen 已提交
506 507 508

配置谓词以匹配值为null的字段。

W
wuyongning 已提交
509
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
510

Z
zengyawen 已提交
511
**参数**
Z
zengyawen 已提交
512 513 514
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
Z
zengyawen 已提交
515

Z
zengyawen 已提交
516
**返回值**
Z
zengyawen 已提交
517 518 519
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
520 521 522

- 示例
  ```
P
PaDoBoo 已提交
523
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
524 525 526 527 528 529 530 531
  predicates.isNull("NAME")
  ```


### isNotNull

isNotNull(field: string): RdbPredicates

Z
zengyawen 已提交
532 533 534

配置谓词以匹配值不为null的指定字段。

W
wuyongning 已提交
535
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
536

Z
zengyawen 已提交
537
**参数**
Z
zengyawen 已提交
538 539 540
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
Z
zengyawen 已提交
541

Z
zengyawen 已提交
542
**返回值**
Z
zengyawen 已提交
543 544 545
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
546

Z
zengyawen 已提交
547
**示例**
Z
zengyawen 已提交
548
  ```
P
PaDoBoo 已提交
549
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
550 551 552 553 554 555 556 557
  predicates.isNotNull("NAME")
  ```


### like

like(field: string, value: string): RdbPredicates

Z
zengyawen 已提交
558 559 560

配置谓词以匹配数据字段为String且值类似于指定字符串的字段。

W
wuyongning 已提交
561
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
562

Z
zengyawen 已提交
563
**参数**
Z
zengyawen 已提交
564 565 566 567
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
568

Z
zengyawen 已提交
569
**返回值**
Z
zengyawen 已提交
570 571 572
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
573

Z
zengyawen 已提交
574
**示例**
Z
zengyawen 已提交
575
  ```
P
PaDoBoo 已提交
576
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
577 578 579 580 581 582 583 584
  predicates.like("NAME", "%os%")
  ```


### glob

glob(field: string, value: string): RdbPredicates

Z
zengyawen 已提交
585 586 587

配置RdbPredicates匹配数据字段为String的指定字段。

W
wuyongning 已提交
588
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
589

Z
zengyawen 已提交
590
**参数**
Z
zengyawen 已提交
591 592 593 594
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。<br>支持通配符,*表示0个、1个或多个数字或字符,?表示1个数字或字符。 |
Z
zengyawen 已提交
595

Z
zengyawen 已提交
596
**返回值**
Z
zengyawen 已提交
597 598 599
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
600

Z
zengyawen 已提交
601
**示例**
Z
zengyawen 已提交
602
  ```
P
PaDoBoo 已提交
603
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
604 605 606 607 608 609 610 611
  predicates.glob("NAME", "?h*g")
  ```


### between

between(field: string, low: ValueType, high: ValueType): RdbPredicates

Z
zengyawen 已提交
612 613 614

将谓词配置为匹配数据字段为ValueType且value在给定范围内的指定字段。

W
wuyongning 已提交
615
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
616

Z
zengyawen 已提交
617
**参数**
Z
zengyawen 已提交
618 619 620 621 622
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| low | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最小值。 |
| high | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的最大值。 |
Z
zengyawen 已提交
623

Z
zengyawen 已提交
624
**返回值**
Z
zengyawen 已提交
625 626 627
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
628

Z
zengyawen 已提交
629
**示例**
Z
zengyawen 已提交
630
  ```
P
PaDoBoo 已提交
631
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
632 633 634 635 636 637 638 639
  predicates.between("AGE", 10, 50)
  ```


### notBetween

notBetween(field: string, low: ValueType, high: ValueType): RdbPredicates

Z
zengyawen 已提交
640 641 642

配置RdbPredicates以匹配数据字段为ValueType且value超出给定范围的指定字段。

W
wuyongning 已提交
643
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
644

Z
zengyawen 已提交
645
**参数**
Z
zengyawen 已提交
646 647 648 649 650
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| low | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最小值。 |
| high | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的最大值。 |
Z
zengyawen 已提交
651

Z
zengyawen 已提交
652
**返回值**
Z
zengyawen 已提交
653 654 655
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
656

Z
zengyawen 已提交
657
**示例**
Z
zengyawen 已提交
658
  ```
P
PaDoBoo 已提交
659
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
660 661 662 663 664 665
  predicates.notBetween("AGE", 10, 50)
  ```


### greaterThan

W
wuyongning 已提交
666
greaterThan(field: string, value: ValueType): RdbPredicates
Z
zengyawen 已提交
667 668 669

配置谓词以匹配数据字段为ValueType且值大于指定值的字段。

W
wuyongning 已提交
670
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
671

Z
zengyawen 已提交
672
**参数**
Z
zengyawen 已提交
673 674 675 676
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
677

Z
zengyawen 已提交
678
**返回值**
Z
zengyawen 已提交
679 680 681
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
682

Z
zengyawen 已提交
683
**示例**
Z
zengyawen 已提交
684
  ```
P
PaDoBoo 已提交
685
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
686 687 688 689 690 691 692 693
  predicates.greaterThan("AGE", 18)
  ```


### lessThan

lessThan(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
694 695 696

配置谓词以匹配数据字段为valueType且value小于指定值的字段。

W
wuyongning 已提交
697
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
698

Z
zengyawen 已提交
699
**参数**
Z
zengyawen 已提交
700 701 702 703
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
704

Z
zengyawen 已提交
705
**返回值**
Z
zengyawen 已提交
706 707 708
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
709

Z
zengyawen 已提交
710
**示例**
Z
zengyawen 已提交
711
  ```
P
PaDoBoo 已提交
712
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
713 714 715 716 717 718 719 720 721
  predicates.lessThan("AGE", 20)
  ```


### greaterThanOrEqualTo


greaterThanOrEqualTo(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
722 723 724

配置谓词以匹配数据字段为ValueType且value大于或等于指定值的字段。

W
wuyongning 已提交
725
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
726

Z
zengyawen 已提交
727
**参数**
Z
zengyawen 已提交
728 729 730 731
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
732

Z
zengyawen 已提交
733
**返回值**
Z
zengyawen 已提交
734 735 736
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
737

Z
zengyawen 已提交
738
**示例**
Z
zengyawen 已提交
739
  ```
P
PaDoBoo 已提交
740
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
741 742 743 744 745 746 747 748 749
  predicates.greaterThanOrEqualTo("AGE", 18)
  ```


### lessThanOrEqualTo


lessThanOrEqualTo(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
750 751 752

配置谓词以匹配数据字段为ValueType且value小于或等于指定值的字段。

W
wuyongning 已提交
753
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
754

Z
zengyawen 已提交
755
**参数**
Z
zengyawen 已提交
756 757 758 759
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
760

Z
zengyawen 已提交
761
**返回值**
Z
zengyawen 已提交
762 763 764
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
765

Z
zengyawen 已提交
766
**示例**
Z
zengyawen 已提交
767
  ```
P
PaDoBoo 已提交
768
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
769 770 771 772 773 774 775 776 777
  predicates.lessThanOrEqualTo("AGE", 20)
  ```


### orderByAsc


orderByAsc(field: string): RdbPredicates

Z
zengyawen 已提交
778 779 780

配置谓词以匹配其值按升序排序的列。

W
wuyongning 已提交
781
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
782

Z
zengyawen 已提交
783
**参数**
Z
zengyawen 已提交
784 785 786
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
Z
zengyawen 已提交
787

Z
zengyawen 已提交
788
**返回值**
Z
zengyawen 已提交
789 790 791
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
792

Z
zengyawen 已提交
793
**示例**
Z
zengyawen 已提交
794
  ```
P
PaDoBoo 已提交
795
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
796 797 798 799 800 801 802 803 804
  predicates.orderByAsc("NAME")
  ```


### orderByDesc


orderByDesc(field: string): RdbPredicates

Z
zengyawen 已提交
805 806 807

配置谓词以匹配其值按降序排序的列。

W
wuyongning 已提交
808
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
809

Z
zengyawen 已提交
810
**参数**
Z
zengyawen 已提交
811 812 813
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
Z
zengyawen 已提交
814

Z
zengyawen 已提交
815
**返回值**
Z
zengyawen 已提交
816 817 818
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
819

Z
zengyawen 已提交
820
**示例**
Z
zengyawen 已提交
821
  ```
P
PaDoBoo 已提交
822
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
823 824 825 826 827 828 829 830
  predicates.orderByDesc("AGE")
  ```


### distinct

distinct(): RdbPredicates

Z
zengyawen 已提交
831 832 833

配置谓词以过滤重复记录并仅保留其中一个。

W
wuyongning 已提交
834
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
835

Z
zengyawen 已提交
836
**返回值**
Z
zengyawen 已提交
837 838 839
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回可用于过滤重复记录的谓词。 |
Z
zengyawen 已提交
840

Z
zengyawen 已提交
841
**示例**
Z
zengyawen 已提交
842
  ```
P
PaDoBoo 已提交
843
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
844
  predicates.equalTo("NAME", "Rose").distinct("NAME")
W
wuyongning 已提交
845 846 847 848 849 850 851
  let promisequery = rdbStore.query(predicates, ["NAME"])
  promisequery.then((resultSet) => {
      console.log("resultSet column names:" + resultSet.columnNames)
      console.log("resultSet column count:" + resultSet.columnCount)
  }).catch((err) => {
      console.log("query err.")
  })
Z
zengyawen 已提交
852
  ```
Z
zengyawen 已提交
853 854


Z
zengyawen 已提交
855
### limitAs
Z
zengyawen 已提交
856

Z
zengyawen 已提交
857
limitAs(value: number): RdbPredicates
Z
zengyawen 已提交
858 859 860 861


设置最大数据记录数的谓词。

W
wuyongning 已提交
862
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
863

Z
zengyawen 已提交
864
**参数**
Z
zengyawen 已提交
865 866 867
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| value | number | 是 | 最大数据记录数。 |
Z
zengyawen 已提交
868

Z
zengyawen 已提交
869
**返回值**
Z
zengyawen 已提交
870 871 872
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回可用于设置最大数据记录数的谓词。 |
Z
zengyawen 已提交
873

Z
zengyawen 已提交
874
**示例**
Z
zengyawen 已提交
875
  ```
P
PaDoBoo 已提交
876
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
877 878 879 880 881 882 883 884
  predicates.equalTo("NAME", "Rose").limitAs(3)
  ```


### offsetAs

offsetAs(rowOffset: number): RdbPredicates

Z
zengyawen 已提交
885 886 887

配置RdbPredicates以指定返回结果的起始位置。

W
wuyongning 已提交
888
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
889

Z
zengyawen 已提交
890
**参数**
Z
zengyawen 已提交
891 892 893
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| rowOffset | number | 是 | 返回结果的起始位置,取值为正整数。 |
Z
zengyawen 已提交
894

Z
zengyawen 已提交
895
**返回值**
Z
zengyawen 已提交
896 897 898
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回具有指定返回结果起始位置的谓词。 |
Z
zengyawen 已提交
899

Z
zengyawen 已提交
900
**示例**
Z
zengyawen 已提交
901
  ```
P
PaDoBoo 已提交
902
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
903 904 905 906 907 908 909 910
  predicates.equalTo("NAME", "Rose").offsetAs(3)
  ```


### groupBy

groupBy(fields: Array&lt;string&gt;): RdbPredicates

Z
zengyawen 已提交
911 912 913

配置RdbPredicates按指定列分组查询结果。

W
wuyongning 已提交
914
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
915

Z
zengyawen 已提交
916
**参数**
Z
zengyawen 已提交
917 918 919
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| fields | Array&lt;string&gt; | 是 | 指定分组依赖的列名。 |
Z
zengyawen 已提交
920

Z
zengyawen 已提交
921
**返回值**
Z
zengyawen 已提交
922 923 924
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回分组查询列的谓词。 |
Z
zengyawen 已提交
925

Z
zengyawen 已提交
926
**示例**
Z
zengyawen 已提交
927
  ```
P
PaDoBoo 已提交
928
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
929 930 931 932 933 934
  predicates.groupBy(["AGE", "NAME"])
  ```


### indexedBy

Z
zengyawen 已提交
935
indexedBy(field: string): RdbPredicates
Z
zengyawen 已提交
936 937 938

配置RdbPredicates以指定索引列。

W
wuyongning 已提交
939
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
940

Z
zengyawen 已提交
941
**参数**
Z
zengyawen 已提交
942 943 944
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 索引列的名称。 |
Z
zengyawen 已提交
945

Z
zengyawen 已提交
946
**返回值**
Z
zengyawen 已提交
947 948 949 950

| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回具有指定索引列的RdbPredicates。 |
Z
zengyawen 已提交
951

Z
zengyawen 已提交
952
**示例**
Z
zengyawen 已提交
953
  ```
P
PaDoBoo 已提交
954
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
955 956 957 958 959 960 961 962
  predicates.indexedBy("SALARY_INDEX")
  ```


### in

in(field: string, value: Array&lt;ValueType&gt;): RdbPredicates

Z
zengyawen 已提交
963 964 965

配置RdbPredicates以匹配数据字段为ValueType数组且值在给定范围内的指定字段。

W
wuyongning 已提交
966
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
967

Z
zengyawen 已提交
968
**参数**
Z
zengyawen 已提交
969 970 971 972
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | Array&lt;[ValueType](#valuetype)&gt; | 是 | 以ValueType型数组形式指定的要匹配的值。 |
Z
zengyawen 已提交
973 974


Z
zengyawen 已提交
975
**返回值**
Z
zengyawen 已提交
976 977 978
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
979

Z
zengyawen 已提交
980
**示例**
Z
zengyawen 已提交
981
  ```
P
PaDoBoo 已提交
982
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
983 984 985 986 987 988 989 990
  predicates.in("AGE", [18, 20])
  ```


### notIn

notIn(field: string, value: Array&lt;ValueType&gt;): RdbPredicates

Z
zengyawen 已提交
991 992 993

将RdbPredicates配置为匹配数据字段为ValueType且值超出给定范围的指定字段。

W
wuyongning 已提交
994
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
995

Z
zengyawen 已提交
996
**参数**
Z
zengyawen 已提交
997 998 999 1000
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | Array&lt;[ValueType](#valuetype)&gt; | 是 | 以ValueType数组形式指定的要匹配的值。 |
Z
zengyawen 已提交
1001 1002


Z
zengyawen 已提交
1003
**返回值**
Z
zengyawen 已提交
1004 1005 1006
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
1007

Z
zengyawen 已提交
1008
**示例**
Z
zengyawen 已提交
1009
  ```
P
PaDoBoo 已提交
1010
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022
  predicates.notIn("NAME", ["Lisa", "Rose"])
  ```


## RdbStore

提供管理关系数据库(RDB)方法的接口。


### insert

insert(name: string, values: ValuesBucket, callback: AsyncCallback&lt;number&gt;):void
Z
zengyawen 已提交
1023 1024 1025

向目标表中插入一行数据,结果以callback形式返回。

W
wuyongning 已提交
1026
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1027

Z
zengyawen 已提交
1028
**参数**
Z
zengyawen 已提交
1029 1030 1031 1032 1033
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 指定的目标表名。 |
| values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。如果操作成功,返回行ID;否则返回-1。 |
Z
zengyawen 已提交
1034

Z
zengyawen 已提交
1035
**示例**
Z
zengyawen 已提交
1036 1037 1038 1039 1040 1041 1042 1043
  ```
  const valueBucket = {
      "NAME": "Lisa",
      "AGE": 18,
      "SALARY": 100.5,
      "CODES": new Uint8Array([1, 2, 3, 4, 5]),
  }
  rdbStore.insert("EMPLOYEE", valueBucket, function (err, ret) {
W
wuyongning 已提交
1044 1045
      console.log("insert first done: " + ret)
  })
Z
zengyawen 已提交
1046 1047 1048 1049 1050 1051
  ```


### insert

insert(name: string, values: ValuesBucket):Promise&lt;number&gt;
Z
zengyawen 已提交
1052 1053 1054

向目标表中插入一行数据,结果以Promise形式返回。

W
wuyongning 已提交
1055
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1056

Z
zengyawen 已提交
1057
**参数**
Z
zengyawen 已提交
1058 1059 1060 1061
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 指定的目标表名。 |
| values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 |
Z
zengyawen 已提交
1062

Z
zengyawen 已提交
1063
**返回值**
Z
zengyawen 已提交
1064 1065 1066
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 指定Promise回调函数。如果操作成功,返回行ID;否则返回-1。 |
Z
zengyawen 已提交
1067

Z
zengyawen 已提交
1068
**示例**
Z
zengyawen 已提交
1069 1070 1071 1072 1073 1074 1075
  ```
  const valueBucket = {
      "NAME": "Lisa",
      "AGE": 18,
      "SALARY": 100.5,
      "CODES": new Uint8Array([1, 2, 3, 4, 5]),
  }
W
wuyongning 已提交
1076 1077 1078 1079 1080 1081
  let promiseinsert = rdbStore.insert("EMPLOYEE", valueBucket)
  promiseinsert.then(async (ret) => {
      console.log("insert first done: " + ret)
  }).catch((err) => {
      console.log("insert err.")
  })
Z
zengyawen 已提交
1082 1083 1084 1085 1086 1087
  ```


### update

update(values: ValuesBucket, rdbPredicates: RdbPredicates, callback: AsyncCallback&lt;number&gt;):void
Z
zengyawen 已提交
1088 1089 1090

根据RdbPredicates的指定实例对象更新数据库中的数据,结果以callback形式返回。

W
wuyongning 已提交
1091
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1092

Z
zengyawen 已提交
1093
**参数**
Z
zengyawen 已提交
1094 1095 1096 1097 1098
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| values | [ValuesBucket](#valuesbucket) | 是 | value指示数据库中要更新的数据行。键值对与数据库表的列名相关联 |
| rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | 表示要插入到表中的数据行。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 指定的callback回调方法。返回受影响的行数。 |
Z
zengyawen 已提交
1099

Z
zengyawen 已提交
1100
**示例**
Z
zengyawen 已提交
1101 1102 1103 1104 1105 1106 1107
  ```
  const valueBucket = {
      "NAME": "Rose",
      "AGE": 22,
      "SALARY": 200.5,
      "CODES": new Uint8Array([1, 2, 3, 4, 5]),
  }
P
PaDoBoo 已提交
1108
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1109 1110
  predicates.equalTo("NAME", "Lisa")
  rdbStore.update(valueBucket, predicates, function (err, ret) {
W
wuyongning 已提交
1111
      console.log("updated row count: " + changedRows)})
Z
zengyawen 已提交
1112 1113 1114 1115 1116 1117
  ```


### update

update(values: ValuesBucket, rdbPredicates: RdbPredicates):Promise&lt;number&gt;
Z
zengyawen 已提交
1118 1119 1120

根据RdbPredicates的指定实例对象更新数据库中的数据,结果以Promise形式返回。

W
wuyongning 已提交
1121
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1122

Z
zengyawen 已提交
1123
**参数**
Z
zengyawen 已提交
1124 1125 1126 1127
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| values | [ValuesBucket](#valuesbucket) | 是 | value指示数据库中要更新的数据行。键值对与数据库表的列名相关联 |
| rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | 表示要插入到表中的数据行。 |
Z
zengyawen 已提交
1128

Z
zengyawen 已提交
1129
**返回值**
Z
zengyawen 已提交
1130 1131 1132
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 指定的Promise回调方法。返回受影响的行数。 |
Z
zengyawen 已提交
1133

Z
zengyawen 已提交
1134
**示例**
Z
zengyawen 已提交
1135 1136 1137 1138 1139 1140 1141
  ```
  const valueBucket = {
      "NAME": "Rose",
      "AGE": 22,
      "SALARY": 200.5,
      "CODES": new Uint8Array([1, 2, 3, 4, 5]),
  }
P
PaDoBoo 已提交
1142
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1143
  predicates.equalTo("NAME", "Lisa")
W
wuyongning 已提交
1144 1145 1146 1147 1148 1149
  let promiseupdate = rdbStore.update(valueBucket, predicates)
  promiseupdate.then(async (ret) => {
       console.log("updated row count: " + changedRows)
  }).catch((err) => {
      console.log("update err.")
  })
Z
zengyawen 已提交
1150 1151 1152 1153 1154 1155 1156
  ```


### delete

delete(rdbPredicates: RdbPredicates, callback: AsyncCallback&lt;number&gt;):void

Z
zengyawen 已提交
1157 1158 1159

根据rdbPredicates的指定实例对象从数据库中删除数据,结果以callback形式返回。

W
wuyongning 已提交
1160
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
1161

Z
zengyawen 已提交
1162
**参数**
Z
zengyawen 已提交
1163 1164 1165 1166
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。返回受影响的行数。 |
Z
zengyawen 已提交
1167

Z
zengyawen 已提交
1168
**示例**
Z
zengyawen 已提交
1169
  ```
P
PaDoBoo 已提交
1170
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1171 1172
  predicates.equalTo("NAME", "Lisa")
  rdbStore.delete(predicates, function (err, rows) {
W
wuyongning 已提交
1173 1174
      console.log("delete rows: " + rows)
  })
Z
zengyawen 已提交
1175 1176 1177 1178 1179 1180
  ```


### delete

delete(rdbPredicates: RdbPredicates):Promise&lt;number&gt;
Z
zengyawen 已提交
1181 1182 1183

根据rdbPredicates的指定实例对象从数据库中删除数据,结果以Promise形式返回。

W
wuyongning 已提交
1184
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1185

Z
zengyawen 已提交
1186
**参数**
Z
zengyawen 已提交
1187 1188 1189
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 |
Z
zengyawen 已提交
1190

Z
zengyawen 已提交
1191
**返回值**
Z
zengyawen 已提交
1192 1193 1194
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 指定Promise回调函数。返回受影响的行数。 |
Z
zengyawen 已提交
1195

Z
zengyawen 已提交
1196
**示例**
Z
zengyawen 已提交
1197
  ```
W
wuyongning 已提交
1198 1199 1200 1201 1202 1203 1204 1205
  let predicatesdelete = new data_rdb.RdbPredicates("EMPLOYEE")
  predicatesdelete.equalTo("NAME", "Lisa")
  let promisedelete = rdbStore.delete(predicates)
  promisedelete.then((rows) => {
      console.log("delete rows: " + rows)
  }).catch((err) => {
      console.log("delete err.")
  })
Z
zengyawen 已提交
1206 1207 1208 1209 1210 1211
  ```


### query

query(rdbPredicates: RdbPredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
Z
zengyawen 已提交
1212 1213 1214

根据指定条件查询数据库中的数据,结果以callback形式返回。

W
wuyongning 已提交
1215
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1216

Z
zengyawen 已提交
1217
**参数**
Z
zengyawen 已提交
1218 1219 1220 1221 1222
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | 表示rdbPredicates的实例对象指定的查询条件。 |
| columns | Array&lt;string&gt; | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
| callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
Z
zengyawen 已提交
1223

Z
zengyawen 已提交
1224
**示例**
Z
zengyawen 已提交
1225
  ```
P
PaDoBoo 已提交
1226
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1227 1228
  predicates.equalTo("NAME", "Rose")
  rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (err, resultSet) {
W
wuyongning 已提交
1229 1230 1231
      console.log("resultSet column names:" + resultSet.columnNames)
      console.log("resultSet column count:" + resultSet.columnCount)
  })
Z
zengyawen 已提交
1232 1233 1234 1235 1236
  ```


### query

M
mangtsang 已提交
1237
query(rdbPredicates: RdbPredicates, columns?: Array&lt;string&gt;):Promise&lt;ResultSet&gt;
Z
zengyawen 已提交
1238 1239 1240

根据指定条件查询数据库中的数据,结果以Promise形式返回。

W
wuyongning 已提交
1241
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1242

Z
zengyawen 已提交
1243
**参数**
Z
zengyawen 已提交
1244 1245 1246 1247
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | 表示rdbPredicates的实例对象指定的查询条件。 |
| columns | Array&lt;string&gt; | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
Z
zengyawen 已提交
1248

Z
zengyawen 已提交
1249
**返回值**
Z
zengyawen 已提交
1250 1251 1252
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[ResultSet](../apis/js-apis-data-resultset.md)&gt; | 指定Promise回调函数。如果操作成功,则返回ResultSet对象。 |
Z
zengyawen 已提交
1253

Z
zengyawen 已提交
1254
**示例**
Z
zengyawen 已提交
1255
  ```
P
PaDoBoo 已提交
1256
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1257
  predicates.equalTo("NAME", "Rose")
W
wuyongning 已提交
1258 1259 1260 1261 1262 1263 1264
  let promisequery = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
  promisequery.then((resultSet) => {
      console.log("resultSet column names:" + resultSet.columnNames)
      console.log("resultSet column count:" + resultSet.columnCount)
  }).catch((err) => {
      console.log("query err.")
  })
Z
zengyawen 已提交
1265 1266 1267
  ```


M
mangtsang 已提交
1268 1269 1270 1271 1272 1273
### querySql<sup>8+</sup>

querySql(sql: string, bindArgs: Array&lt;ValueType&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void

根据指定SQL语句查询数据库中的数据,结果以callback形式返回。

W
wuyongning 已提交
1274
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1275

Z
zengyawen 已提交
1276
**参数**
Z
zengyawen 已提交
1277 1278 1279 1280 1281
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| sql | string | 是 | 指定要执行的SQL语句。 |
| bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 是 | SQL语句中参数的值。 |
| callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
M
mangtsang 已提交
1282

Z
zengyawen 已提交
1283
**示例**
M
mangtsang 已提交
1284 1285
  ```
  rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'], function (err, resultSet) {
W
wuyongning 已提交
1286 1287 1288
      console.log("resultSet column names:" + resultSet.columnNames)
      console.log("resultSet column count:" + resultSet.columnCount)
  })
M
mangtsang 已提交
1289 1290 1291 1292 1293 1294 1295 1296 1297
  ```


### querySql<sup>8+</sup>

querySql(sql: string, bindArgs?: Array&lt;ValueType&gt;):Promise&lt;ResultSet&gt;

根据指定SQL语句查询数据库中的数据,结果以Promise形式返回。

W
wuyongning 已提交
1298
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1299

Z
zengyawen 已提交
1300
**参数**
Z
zengyawen 已提交
1301 1302 1303 1304
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| sql | string | 是 | 指定要执行的SQL语句。 |
| bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 否 | SQL语句中参数的值。 |
M
mangtsang 已提交
1305

Z
zengyawen 已提交
1306
**返回值**
Z
zengyawen 已提交
1307 1308 1309
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[ResultSet](../apis/js-apis-data-resultset.md)&gt; | 指定Promise回调函数。如果操作成功,则返回ResultSet对象。 |
M
mangtsang 已提交
1310

Z
zengyawen 已提交
1311
**示例**
M
mangtsang 已提交
1312
  ```
W
wuyongning 已提交
1313 1314 1315 1316 1317 1318 1319
  let promisequerySql = rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'])
  promisequerySql.then((resultSet) => {
      console.log("resultSet column names:" + resultSet.columnNames)
      console.log("resultSet column count:" + resultSet.columnCount)
  }).catch((err) => {
      console.log("querySql err.")
  })
M
mangtsang 已提交
1320 1321 1322
  ```


Z
zengyawen 已提交
1323 1324 1325
### executeSql

executeSql(sql: string, bindArgs: Array&lt;ValueType&gt;, callback: AsyncCallback&lt;void&gt;):void
Z
zengyawen 已提交
1326 1327 1328

执行包含指定参数但不返回值的SQL语句,结果以callbck形式返回。

W
wuyongning 已提交
1329
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1330

Z
zengyawen 已提交
1331
**参数**
Z
zengyawen 已提交
1332 1333 1334 1335 1336
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| sql | string | 是 | 指定要执行的SQL语句。 |
| bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 是 | SQL语句中参数的值。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |
Z
zengyawen 已提交
1337

Z
zengyawen 已提交
1338
**示例**
Z
zengyawen 已提交
1339
  ```
M
mangtsang 已提交
1340
  rdbStore.executeSql("DELETE FROM EMPLOYEE", null, function () {
W
wuyongning 已提交
1341 1342
      console.info('delete done.')
  })
Z
zengyawen 已提交
1343 1344 1345 1346 1347
  ```


### executeSql

M
mangtsang 已提交
1348
executeSql(sql: string, bindArgs?: Array&lt;ValueType&gt;):Promise&lt;void&gt;
Z
zengyawen 已提交
1349 1350 1351

执行包含指定参数但不返回值的SQL语句,结果以Promise形式返回。

W
wuyongning 已提交
1352
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1353

Z
zengyawen 已提交
1354
**参数**
Z
zengyawen 已提交
1355 1356 1357 1358
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| sql | string | 是 | 指定要执行的SQL语句。 |
| bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 否 | SQL语句中参数的值。 |
Z
zengyawen 已提交
1359

Z
zengyawen 已提交
1360
**返回值**
Z
zengyawen 已提交
1361 1362 1363
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 指定Promise回调函数。 |
Z
zengyawen 已提交
1364

Z
zengyawen 已提交
1365
**示例**
Z
zengyawen 已提交
1366
  ```
W
wuyongning 已提交
1367 1368 1369 1370 1371 1372
  let promiseexecuteSql = rdbStore.executeSql("DELETE FROM EMPLOYEE")
  promiseexecuteSql.then(() => {
      console.info('delete done.')
  }).catch((err) => {
      console.log("executeSql err.")
  })
Z
zengyawen 已提交
1373
  ```
S
sun-dou 已提交
1374

W
wuyongning 已提交
1375 1376 1377 1378 1379 1380
### beginTransaction<sup>8+</sup>

beginTransaction():void

在开始执行SQL语句之前,开始事务。

W
wuyongning 已提交
1381 1382
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。

Z
zengyawen 已提交
1383
**示例**
W
wuyongning 已提交
1384 1385 1386 1387 1388 1389 1390 1391 1392
```
  rdbStore.beginTransaction()
  const valueBucket = {
      "name": "lisi",
      "age": 18,
      "salary": 100.5,
      "blobType": new Uint8Array([1, 2, 3]),
  }
  rdbStore.insert("test", valueBucket, function (err, ret) {
W
wuyongning 已提交
1393 1394
      console.log("insert done: " + ret)
  })
W
wuyongning 已提交
1395 1396 1397 1398 1399 1400 1401 1402 1403 1404
  rdbStore.commit()
```


### commit<sup>8+</sup>

commit():void

提交已执行的SQL语句。

W
wuyongning 已提交
1405 1406
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。

Z
zengyawen 已提交
1407
**示例**
W
wuyongning 已提交
1408 1409 1410 1411 1412 1413 1414 1415 1416 1417
```
  rdbStore.beginTransaction()
  const valueBucket = {
      "name": "lisi",
      "age": 18,
      "salary": 100.5,
      "blobType": new Uint8Array([1, 2, 3]),
  }

  rdbStore.insert("test", valueBucket, function (err, ret) {
W
wuyongning 已提交
1418 1419
      console.log("insert done: " + ret)
  })
W
wuyongning 已提交
1420 1421 1422 1423 1424 1425 1426 1427 1428 1429
  rdbStore.commit()
```


### rollBack<sup>8+</sup>

rollBack():void;

回滚已经执行的SQL语句。

W
wuyongning 已提交
1430 1431
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。

Z
zengyawen 已提交
1432
**示例**
W
wuyongning 已提交
1433 1434 1435 1436 1437 1438 1439 1440 1441 1442
```
  try {
      rdbStore.beginTransaction()
      const valueBucket = {
          "id": 1,
          "name": "lisi",
          "age": 18,
          "salary": 100.5,
          "blobType": new Uint8Array([1, 2, 3]),
      }
W
wuyongning 已提交
1443 1444 1445 1446
      rdbStore.insert("test", valueBucket, function (err, ret) {
          console.log("insert done: " + ret)
      })
      rdbStore.commit()
W
wuyongning 已提交
1447 1448 1449 1450 1451 1452
  } catch (e) {
      rdbStore.rollBack()
  }
```


Z
zengyawen 已提交
1453
### setDistributedTables<sup>8+</sup>
S
sun-dou 已提交
1454

W
wuyongning 已提交
1455
setDistributedTables(tables: Array&lt;string&gt;, callback: AsyncCallback&lt;void&gt;): void
S
sun-dou 已提交
1456 1457 1458

设置分布式列表,结果以callbck形式返回。

W
wuyongning 已提交
1459
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1460

Z
zengyawen 已提交
1461
**参数**
Z
zengyawen 已提交
1462 1463 1464 1465
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| tables | Array&lt;string&gt; | 是 | 要设置的分布式列表表名 |
| callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |
S
sun-dou 已提交
1466

Z
zengyawen 已提交
1467
**示例**
S
sun-dou 已提交
1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478
  ```
  rdbStore.setDistributedTables(["EMPLOYEE"], function (err) {
      if (err) {
          console.info('setDistributedTables failed.')
          return
      }
      console.info('setDistributedTables success.')
  })
  ```


Z
zengyawen 已提交
1479
### setDistributedTables<sup>8+</sup>
S
sun-dou 已提交
1480

W
wuyongning 已提交
1481
 setDistributedTables(tables: Array&lt;string&gt;): Promise&lt;void&gt;
S
sun-dou 已提交
1482 1483 1484

设置分布式列表,结果以Promise形式返回。

W
wuyongning 已提交
1485
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1486

Z
zengyawen 已提交
1487
**参数**
Z
zengyawen 已提交
1488 1489 1490
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| tables | Array&lt;string&gt; | 是 | 要设置的分布式列表表名。 |
S
sun-dou 已提交
1491

Z
zengyawen 已提交
1492
**返回值**
Z
zengyawen 已提交
1493 1494 1495
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 指定Promise回调函数。 |
S
sun-dou 已提交
1496

Z
zengyawen 已提交
1497
**示例**
S
sun-dou 已提交
1498
  ```
W
wuyongning 已提交
1499 1500
  let promiseset = rdbStore.setDistributedTables(["EMPLOYEE"])
  promiseset.then(() => {
S
sun-dou 已提交
1501 1502
      console.info("setDistributedTables success.")
  }).catch((err) => {
W
wuyongning 已提交
1503
      console.info("setDistributedTables failed.")
S
sun-dou 已提交
1504 1505 1506
  })
  ```

Z
zengyawen 已提交
1507
### obtainDistributedTableName<sup>8+</sup>
S
sun-dou 已提交
1508

W
wuyongning 已提交
1509
obtainDistributedTableName(device: string, table: string, callback: AsyncCallback&lt;string&gt;): void
S
sun-dou 已提交
1510 1511 1512

根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 结果以callbck形式返回。

W
wuyongning 已提交
1513
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1514

Z
zengyawen 已提交
1515
**参数**
Z
zengyawen 已提交
1516 1517 1518 1519 1520
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| device | string | 是 | 远程设备 。|
| table | string | 是 | 本地表名。 |
| callback | AsyncCallback&lt;string&gt; | 是 | 指定的callback回调函数。如果操作成功,返回远程设备的分布式表名。 |
S
sun-dou 已提交
1521

Z
zengyawen 已提交
1522
**示例**
S
sun-dou 已提交
1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533
  ```
  rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE", function (err, tableName) {
      if (err) {
          console.info('obtainDistributedTableName failed.')
          return
      }
      console.info('obtainDistributedTableName success, tableName=.' + tableName)
   })
  ```


Z
zengyawen 已提交
1534
### obtainDistributedTableName<sup>8+</sup>
S
sun-dou 已提交
1535

W
wuyongning 已提交
1536
 obtainDistributedTableName(device: string, table: string): Promise&lt;string&gt;
S
sun-dou 已提交
1537 1538 1539

根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,结果以Promise形式返回。

W
wuyongning 已提交
1540
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1541

Z
zengyawen 已提交
1542
**参数**
Z
zengyawen 已提交
1543 1544 1545 1546
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| device | string | 是 | 远程设备。 |
| table | string | 是 | 本地表名。 |
S
sun-dou 已提交
1547

Z
zengyawen 已提交
1548
**返回值**
Z
zengyawen 已提交
1549 1550 1551
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;string&gt; | 指定Promise回调函数。如果操作成功,返回远程设备的分布式表名。 |
S
sun-dou 已提交
1552

Z
zengyawen 已提交
1553
**示例**
S
sun-dou 已提交
1554
  ```
W
wuyongning 已提交
1555 1556
  let promiseDistr = rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE")
  promiseDistr.then((tableName) => {
S
sun-dou 已提交
1557 1558 1559 1560 1561 1562
      console.info('obtainDistributedTableName success, tableName=' + tableName)
  }).catch((err) => {
      console.info('obtainDistributedTableName failed.')
  })
  ```

W
wuyongning 已提交
1563
### sync<sup>8+</sup>
S
sun-dou 已提交
1564

W
wuyongning 已提交
1565
sync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback&lt;Array&lt;[string, number]&gt;&gt;): void
S
sun-dou 已提交
1566 1567 1568

在设备之间同步数据, 结果以callbck形式返回。

W
wuyongning 已提交
1569
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1570

Z
zengyawen 已提交
1571
**参数**
Z
zengyawen 已提交
1572 1573 1574 1575 1576
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| mode | [SyncMode](#syncmode8) | 是 | 指同步模式。该值可以是推、拉。 |
| predicates | [RdbPredicates](#rdbpredicates) | 是 | 约束同步数据和设备。 |
| callback | AsyncCallback&lt;Array&lt;[string, number]&gt;&gt; | 是 | 指定的callback回调函数,用于向调用者发送同步结果。string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。|
S
sun-dou 已提交
1577

Z
zengyawen 已提交
1578
**示例**
S
sun-dou 已提交
1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594
  ```
  let predicate = new rdb.RdbPredicates('EMPLOYEE')
  predicate.inDevices(['12345678abcde'])
  rdbStore.sync(rdb.SyncMode.SYNC_MODE_PUSH, predicate, function (err, result) {
      if (err) {
          console.log('sync failed')
          return
       }
      console.log('sync done.')
      for (let i = 0; i < result.length; i++) {
          console.log('device=' + result[i][0] + ' status=' + result[i][1])
       }
  })
  ```


W
wuyongning 已提交
1595
### sync<sup>8+</sup>
S
sun-dou 已提交
1596

W
wuyongning 已提交
1597
 sync(mode: SyncMode, predicates: RdbPredicates): Promise&lt;Array&lt;[string, number]&gt;&gt;
S
sun-dou 已提交
1598 1599 1600

在设备之间同步数据,结果以Promise形式返回。

W
wuyongning 已提交
1601
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1602

Z
zengyawen 已提交
1603
**参数**
Z
zengyawen 已提交
1604 1605 1606 1607
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| mode | [SyncMode](#syncmode8) | 是 | 指同步模式。该值可以是推、拉。 |
| predicates | [RdbPredicates](#rdbpredicates) | 是 | 约束同步数据和设备。 |
S
sun-dou 已提交
1608

Z
zengyawen 已提交
1609
**返回值**
Z
zengyawen 已提交
1610 1611 1612 1613

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;Array&lt;[string, number]&gt;&gt; | 指定Promise回调函数,用于向调用者发送同步结果。string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。 |
S
sun-dou 已提交
1614

Z
zengyawen 已提交
1615
**示例**
S
sun-dou 已提交
1616
  ```
Z
zengyawen 已提交
1617
  let predicatesync = new data_rdb.RdbPredicates('EMPLOYEE')
W
wuyongning 已提交
1618
  predicatesync.inDevices(['12345678abcde'])
Z
zengyawen 已提交
1619 1620
  let promisesync = rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicatesync)
  promisesync.then((result) =>{
S
sun-dou 已提交
1621 1622 1623 1624
      console.log('sync done.')
      for (let i = 0; i < result.length; i++) {
          console.log('device=' + result[i][0] + ' status=' + result[i][1])
      }
W
wuyongning 已提交
1625 1626 1627
  }).catch((err) => {
      console.log('sync failed')
  })
S
sun-dou 已提交
1628 1629
  ```

Z
zengyawen 已提交
1630
### on('dataChange')<sup>8+</sup>
S
sun-dou 已提交
1631

W
wuyongning 已提交
1632
on(event: 'dataChange', type: SubscribeType, observer: Callback&lt;Array&lt;string&gt;&gt;): void
S
sun-dou 已提交
1633 1634 1635

注册数据库的观察者。当分布式数据库中的数据发生更改时,将调用回调。

W
wuyongning 已提交
1636
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1637

Z
zengyawen 已提交
1638
**参数**
Z
zengyawen 已提交
1639

Z
zengyawen 已提交
1640 1641 1642 1643 1644
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| event | string | 是 | 取值为'dataChange',表示数据更改。 |
| type | [SubscribeType](#subscribetype8) | 是 | 指在{@code SubscribeType}中定义的订阅类型。 |
| observer | Callback&lt;Array&lt;string&gt;&gt; | 是 | 指分布式数据库中数据更改事件的观察者。 |
S
sun-dou 已提交
1645

Z
zengyawen 已提交
1646
**示例**
S
sun-dou 已提交
1647 1648 1649 1650
  ```
  function storeObserver(devices) {
      for (let i = 0; i < devices.length; i++) {
          console.log('device=' + device[i] + ' data changed')
W
wuyongning 已提交
1651 1652 1653
      }
  }
  try {
Z
zengyawen 已提交
1654
      rdbStore.on('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
W
wuyongning 已提交
1655 1656 1657
  } catch (err) {
      console.log('register observer failed')
  }
S
sun-dou 已提交
1658 1659
  ```

Z
zengyawen 已提交
1660
### off('dataChange')<sup>8+</sup>
S
sun-dou 已提交
1661

W
wuyongning 已提交
1662
off(event:'dataChange', type: SubscribeType, observer: Callback&lt;Array&lt;string&gt;&gt;): void
S
sun-dou 已提交
1663 1664 1665

从数据库中删除指定类型的指定观察者, 结果以callbck形式返回。

W
wuyongning 已提交
1666
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1667

Z
zengyawen 已提交
1668
**参数**
Z
zengyawen 已提交
1669

Z
zengyawen 已提交
1670 1671 1672 1673 1674
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| event | string | 是 | 取值为'dataChange',表示数据更改。 |
| type | [SubscribeType](#subscribetype8)    | 是 | 指在{@code SubscribeType}中定义的订阅类型。 |
| observer | Callback&lt;Array&lt;string&gt;&gt; | 是 | 指已注册的数据更改观察者。|
S
sun-dou 已提交
1675

Z
zengyawen 已提交
1676
**示例**
Z
zengyawen 已提交
1677

S
sun-dou 已提交
1678 1679 1680 1681 1682 1683 1684
  ```
  function storeObserver(devices) {
      for (let i = 0; i < devices.length; i++) {
          console.log('device=' + device[i] + ' data changed')
      }
  }
  try {
Z
zengyawen 已提交
1685
      rdbStore.off('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
S
sun-dou 已提交
1686 1687 1688 1689 1690 1691
  } catch (err) {
      console.log('unregister observer failed')
  }
  ```


Z
zengyawen 已提交
1692
## StoreConfig
Z
zengyawen 已提交
1693 1694 1695

管理关系数据库配置。

W
wuyongning 已提交
1696 1697
**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。

Z
zengyawen 已提交
1698 1699 1700 1701 1702 1703
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 数据库文件名。 |


## ValueType
Z
zengyawen 已提交
1704 1705 1706

用于表示允许的数据字段类型。

W
wuyongning 已提交
1707 1708
**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。

Z
zengyawen 已提交
1709 1710 1711 1712
| 名称 | 说明 |
| -------- | -------- |
| number | 表示值类型为数字。 |
| string | 表示值类型为字符。 |
1713
| boolean | 表示值类型为布尔值。|
Z
zengyawen 已提交
1714 1715 1716


## ValuesBucket
Z
zengyawen 已提交
1717 1718 1719

用于存储键值对。

W
wuyongning 已提交
1720
**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
1721

Z
zengyawen 已提交
1722 1723 1724
| 名称 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| [key:&nbsp;string] | [ValueType](#valuetype)\|&nbsp;Uint8Array&nbsp;\|&nbsp;null | 是 | 用于存储键值对。 |
S
sun-dou 已提交
1725 1726


W
wuyongning 已提交
1727
## SyncMode<sup>8+</sup>
S
sun-dou 已提交
1728 1729 1730

指数据库同步模式。

W
wuyongning 已提交
1731
**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
S
sun-dou 已提交
1732

W
wuyongning 已提交
1733 1734 1735 1736 1737 1738
| 名称       | 默认值 | 说明 |
| --------  | ----- |----- |
| SYNC_MODE_PUSH | 0 | 表示数据从本地设备推送到远程设备。 |
| SYNC_MODE_PULL | 1 | 表示数据从远程设备拉至本地设备。 |

## SubscribeType<sup>8+</sup>
S
sun-dou 已提交
1739 1740 1741

描述订阅类型。

W
wuyongning 已提交
1742 1743 1744 1745 1746
**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。

| 名称      | 默认值 | 说明 |
| -------- | ----- |---- |
| SUBSCRIBE_TYPE_REMOTE | 0 | 订阅远程数据更改。 |