1# Accessing a DataAbility 2 3 4To access a DataAbility, import the basic dependency packages and obtain the URI string for communicating with the DataAbility. 5 6 7The basic dependency packages include: 8 9 10- @ohos.ability.featureAbility 11 12- @ohos.data.dataAbility 13 14 15The sample code for accessing a DataAbility is as follows: 16 17 181. Create a **DataAbilityHelper** instance. 19 20 ```ts 21 import featureAbility from '@ohos.ability.featureAbility'; 22 import ohos_data_ability from '@ohos.data.dataAbility'; 23 import ability from '@ohos.ability.ability'; 24 // Different from the URI defined in the config.json file, the URI passed in the parameter has an extra slash (/), three slashes in total. 25 let uri: string = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 26 let DAHelper: ability.DataAbilityHelper = featureAbility.acquireDataAbilityHelper(uri); 27 ``` 28 292. Construct RDB data. 30 31 ```ts 32 import ohos_data_ability from '@ohos.data.dataAbility'; 33 import rdb from '@ohos.data.rdb'; 34 let valuesBucket_insert: rdb.ValuesBucket = { name: 'Rose', introduction: 'insert' }; 35 let valuesBucket_update: rdb.ValuesBucket = { name: 'Rose', introduction: 'update' }; 36 let crowd = new Array({ name: 'Rose', introduction: 'batchInsert_one' } as rdb.ValuesBucket, 37 { name: 'Rose', introduction: 'batchInsert_two' } as rdb.ValuesBucket); 38 let columnArray = new Array('id', 'name', 'introduction'); 39 let predicates = new ohos_data_ability.DataAbilityPredicates(); 40 ``` 41 42 For details about DataAbilityPredicates, see [DataAbility Predicates](../reference/apis-arkdata/js-apis-data-ability.md). 43 443. Use **insert** to insert data to the DataAbility. 45 46 ```ts 47 import ability from '@ohos.ability.ability'; 48 import featureAbility from '@ohos.ability.featureAbility'; 49 import { BusinessError } from '@ohos.base'; 50 import ohos_data_ability from '@ohos.data.dataAbility'; 51 import rdb from '@ohos.data.rdb'; 52 import promptAction from '@ohos.promptAction'; 53 import hilog from '@ohos.hilog'; 54 55 const TAG: string = 'PageDataAbility'; 56 57 // Callback mode: 58 const domain: number = 0xFF00; 59 60 @Entry 61 @Component 62 struct PageDataAbility { 63 private valuesBucket_insert: rdb.ValuesBucket = { name: 'Rose', introduction: 'insert' }; 64 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 65 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 66 67 build() { 68 Column() { 69 // ... 70 List({ initialIndex: 0 }) { 71 // ... 72 ListItemGroup() { 73 ListItem() { 74 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 75 // ... 76 } 77 .onClick(() => { 78 // Callback mode: 79 this.DAHelper.insert(this.uri, this.valuesBucket_insert, (error: BusinessError, data: number) => { 80 if (error && error.code !== 0) { 81 promptAction.showToast({ 82 message: 'insert_failed_toast' 83 }); 84 } else { 85 promptAction.showToast({ 86 message: 'insert_success_toast' 87 }); 88 } 89 hilog.info(domain, TAG, 'DAHelper insert result: ' + data + ', error: ' + JSON.stringify(error)); 90 } 91 ); 92 }) 93 } 94 // ... 95 } 96 // ... 97 } 98 // ... 99 } 100 // ... 101 } 102 } 103 ``` 104 105 106 ```ts 107 import ability from '@ohos.ability.ability'; 108 import featureAbility from '@ohos.ability.featureAbility'; 109 import { BusinessError } from '@ohos.base'; 110 import ohos_data_ability from '@ohos.data.dataAbility'; 111 import rdb from '@ohos.data.rdb'; 112 import promptAction from '@ohos.promptAction'; 113 import hilog from '@ohos.hilog'; 114 115 const TAG: string = 'PageDataAbility'; 116 const domain: number = 0xFF00; 117 118 @Entry 119 @Component 120 struct PageDataAbility { 121 private valuesBucket_insert: rdb.ValuesBucket = { name: 'Rose', introduction: 'insert' }; 122 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 123 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 124 125 build() { 126 Column() { 127 // ... 128 List({ initialIndex: 0 }) { 129 // ... 130 ListItemGroup() { 131 ListItem() { 132 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 133 // ... 134 } 135 .onClick(() => { 136 // Promise mode (await needs to be used in the asynchronous method): 137 this.DAHelper.insert(this.uri, this.valuesBucket_insert).then((datainsert) => { 138 promptAction.showToast({ 139 message: 'insert_success_toast' 140 }); 141 hilog.info(domain, TAG, 'DAHelper insert result: ' + datainsert); 142 }).catch((error: BusinessError) => { 143 promptAction.showToast({ 144 message: 'insert_failed_toast' 145 }); 146 hilog.error(domain, TAG, `DAHelper insert failed. Cause: ${error.message}`); 147 }); 148 }) 149 } 150 // ... 151 } 152 // ... 153 } 154 // ... 155 } 156 // ... 157 } 158 } 159 ``` 160 1614. Use **delete** to delete data from the DataAbility. 162 163 ```ts 164 import ability from '@ohos.ability.ability'; 165 import featureAbility from '@ohos.ability.featureAbility'; 166 import { BusinessError } from '@ohos.base'; 167 import ohos_data_ability from '@ohos.data.dataAbility'; 168 import rdb from '@ohos.data.rdb'; 169 import promptAction from '@ohos.promptAction'; 170 import hilog from '@ohos.hilog'; 171 172 const TAG: string = 'PageDataAbility'; 173 const domain: number = 0xFF00; 174 175 @Entry 176 @Component 177 struct PageDataAbility { 178 private predicates = new ohos_data_ability.DataAbilityPredicates(); 179 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 180 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 181 182 build() { 183 Column() { 184 // ... 185 List({ initialIndex: 0 }) { 186 // ... 187 ListItemGroup() { 188 ListItem() { 189 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 190 // ... 191 } 192 .onClick(() => { 193 // Callback mode: 194 this.DAHelper.delete(this.uri, this.predicates, (error, data) => { 195 if (error && error.code !== 0) { 196 promptAction.showToast({ 197 message: 'delete_failed_toast' 198 }); 199 } else { 200 promptAction.showToast({ 201 message: 'delete_success_toast' 202 }); 203 } 204 hilog.info(domain, TAG, 'DAHelper delete result: ' + data + ', error: ' + JSON.stringify(error)); 205 } 206 ); 207 }) 208 } 209 // ... 210 } 211 // ... 212 } 213 // ... 214 } 215 // ... 216 } 217 } 218 ``` 219 220 221 ```ts 222 import ability from '@ohos.ability.ability'; 223 import featureAbility from '@ohos.ability.featureAbility'; 224 import { BusinessError } from '@ohos.base'; 225 import ohos_data_ability from '@ohos.data.dataAbility'; 226 import rdb from '@ohos.data.rdb'; 227 import promptAction from '@ohos.promptAction'; 228 import hilog from '@ohos.hilog'; 229 230 const TAG: string = 'PageDataAbility'; 231 const domain: number = 0xFF00; 232 233 @Entry 234 @Component 235 struct PageDataAbility { 236 private predicates = new ohos_data_ability.DataAbilityPredicates(); 237 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 238 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 239 240 build() { 241 Column() { 242 // ... 243 List({ initialIndex: 0 }) { 244 // ... 245 ListItemGroup() { 246 ListItem() { 247 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 248 // ... 249 } 250 .onClick(() => { 251 // Promise mode (await needs to be used in the asynchronous method): 252 this.DAHelper.delete(this.uri, this.predicates).then((datadelete) => { 253 promptAction.showToast({ 254 message: 'delete_success_toast' 255 }); 256 hilog.info(domain, TAG, 'DAHelper delete result: ' + datadelete); 257 }).catch((error: BusinessError) => { 258 promptAction.showToast({ 259 message: 'delete_failed_toast' 260 }); 261 hilog.error(domain, TAG, `DAHelper delete failed. Cause: ${error.message}`); 262 }); 263 }) 264 } 265 // ... 266 } 267 // ... 268 } 269 // ... 270 } 271 // ... 272 } 273 } 274 ``` 275 2765. Use **update** to update data in the DataAbility. 277 278 ```ts 279 import ability from '@ohos.ability.ability'; 280 import featureAbility from '@ohos.ability.featureAbility'; 281 import { BusinessError } from '@ohos.base'; 282 import ohos_data_ability from '@ohos.data.dataAbility'; 283 import rdb from '@ohos.data.rdb'; 284 import promptAction from '@ohos.promptAction'; 285 import hilog from '@ohos.hilog'; 286 287 const TAG: string = 'PageDataAbility'; 288 const domain: number = 0xFF00; 289 290 @Entry 291 @Component 292 struct PageDataAbility { 293 private valuesBucket_update: rdb.ValuesBucket = { name: 'Rose', introduction: 'update' }; 294 private predicates = new ohos_data_ability.DataAbilityPredicates(); 295 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 296 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 297 298 build() { 299 Column() { 300 // ... 301 List({ initialIndex: 0 }) { 302 // ... 303 ListItemGroup() { 304 ListItem() { 305 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 306 // ... 307 } 308 .onClick(() => { 309 // Callback mode: 310 this.predicates.equalTo('name', 'Rose'); 311 this.DAHelper.update(this.uri, this.valuesBucket_update, this.predicates, (error, data) => { 312 if (error && error.code !== 0) { 313 promptAction.showToast({ 314 message: 'update_failed_toast' 315 }); 316 } else { 317 promptAction.showToast({ 318 message: 'update_success_toast' 319 }); 320 } 321 hilog.info(domain, TAG, 'DAHelper update result: ' + data + ', error: ' + JSON.stringify(error)); 322 } 323 ); 324 }) 325 } 326 // ... 327 } 328 // ... 329 } 330 // ... 331 } 332 // ... 333 } 334 } 335 ``` 336 337 338 ```ts 339 import ability from '@ohos.ability.ability'; 340 import featureAbility from '@ohos.ability.featureAbility'; 341 import { BusinessError } from '@ohos.base'; 342 import ohos_data_ability from '@ohos.data.dataAbility'; 343 import rdb from '@ohos.data.rdb'; 344 import promptAction from '@ohos.promptAction'; 345 import hilog from '@ohos.hilog'; 346 347 const TAG: string = 'PageDataAbility'; 348 const domain: number = 0xFF00; 349 350 @Entry 351 @Component 352 struct PageDataAbility { 353 private valuesBucket_update: rdb.ValuesBucket = { name: 'Rose', introduction: 'update' }; 354 private predicates = new ohos_data_ability.DataAbilityPredicates(); 355 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 356 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 357 358 build() { 359 Column() { 360 // ... 361 List({ initialIndex: 0 }) { 362 // ... 363 ListItemGroup() { 364 ListItem() { 365 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 366 // ... 367 } 368 .onClick(() => { 369 // Promise mode (await needs to be used in the asynchronous method): 370 this.predicates.equalTo('name', 'Rose'); 371 this.DAHelper.update(this.uri, this.valuesBucket_update, this.predicates).then((dataupdate) => { 372 promptAction.showToast({ 373 message: 'update_success_toast' 374 }); 375 hilog.info(domain, TAG, 'DAHelper update result: ' + dataupdate); 376 }).catch((error: BusinessError) => { 377 promptAction.showToast({ 378 message: 'update_failed_toast' 379 }); 380 hilog.error(domain, TAG, `DAHelper update failed. Cause: ${error.message}`); 381 }); 382 }) 383 } 384 // ... 385 } 386 // ... 387 } 388 // ... 389 } 390 // ... 391 } 392 } 393 ``` 394 3956. Use **query** to query data in the DataAbility. 396 397 ```ts 398 import ability from '@ohos.ability.ability'; 399 import featureAbility from '@ohos.ability.featureAbility'; 400 import { BusinessError } from '@ohos.base'; 401 import ohos_data_ability from '@ohos.data.dataAbility'; 402 import rdb from '@ohos.data.rdb'; 403 import promptAction from '@ohos.promptAction'; 404 import hilog from '@ohos.hilog'; 405 406 const TAG: string = 'PageDataAbility'; 407 const domain: number = 0xFF00; 408 409 @Entry 410 @Component 411 struct PageDataAbility { 412 private columnArray = new Array('id', 'name', 'introduction'); 413 private predicates = new ohos_data_ability.DataAbilityPredicates(); 414 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 415 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 416 417 build() { 418 Column() { 419 // ... 420 List({ initialIndex: 0 }) { 421 // ... 422 ListItemGroup() { 423 ListItem() { 424 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 425 // ... 426 } 427 .onClick(() => { 428 // Callback mode: 429 this.predicates.equalTo('name', 'Rose'); 430 this.DAHelper.query(this.uri, this.columnArray, this.predicates, (error, data) => { 431 if (error && error.code !== 0) { 432 promptAction.showToast({ 433 message: 'query_failed_toast' 434 }); 435 hilog.error(domain, TAG, `DAHelper query failed. Cause: ${error.message}`); 436 } else { 437 promptAction.showToast({ 438 message: 'query_success_toast' 439 }); 440 } 441 // ResultSet is a cursor of a data set. By default, the cursor points to the -1st record. Valid data starts from 0. 442 while (data.goToNextRow()) { 443 const id = data.getLong(data.getColumnIndex('id')); 444 const name = data.getString(data.getColumnIndex('name')); 445 const introduction = data.getString(data.getColumnIndex('introduction')); 446 hilog.info(domain, TAG, `DAHelper query result:id = [${id}], name = [${name}], introduction = [${introduction}]`); 447 } 448 // Release the data set memory. 449 data.close(); 450 } 451 ); 452 }) 453 } 454 // ... 455 } 456 // ... 457 } 458 // ... 459 } 460 // ... 461 } 462 } 463 ``` 464 465 466 ```ts 467 import ability from '@ohos.ability.ability'; 468 import featureAbility from '@ohos.ability.featureAbility'; 469 import { BusinessError } from '@ohos.base'; 470 import ohos_data_ability from '@ohos.data.dataAbility'; 471 import rdb from '@ohos.data.rdb'; 472 import promptAction from '@ohos.promptAction'; 473 import hilog from '@ohos.hilog'; 474 475 const TAG: string = 'PageDataAbility'; 476 const domain: number = 0xFF00; 477 478 @Entry 479 @Component 480 struct PageDataAbility { 481 private columnArray = new Array('id', 'name', 'introduction'); 482 private predicates = new ohos_data_ability.DataAbilityPredicates(); 483 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 484 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 485 486 build() { 487 Column() { 488 // ... 489 List({ initialIndex: 0 }) { 490 // ... 491 ListItemGroup() { 492 ListItem() { 493 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 494 // ... 495 } 496 .onClick(() => { 497 // Promise mode (await needs to be used in the asynchronous method): 498 this.predicates.equalTo('name', 'Rose'); 499 this.DAHelper.query(this.uri, this.columnArray, this.predicates).then((dataquery) => { 500 promptAction.showToast({ 501 message: 'query_success_toast' 502 }); 503 // ResultSet is a cursor of a data set. By default, the cursor points to the -1st record. Valid data starts from 0. 504 while (dataquery.goToNextRow()) { 505 const id = dataquery.getLong(dataquery.getColumnIndex('id')); 506 const name = dataquery.getString(dataquery.getColumnIndex('name')); 507 const introduction = dataquery.getString(dataquery.getColumnIndex('introduction')); 508 hilog.info(domain, TAG, `DAHelper query result:id = [${id}], name = [${name}], introduction = [${introduction}]`); 509 } 510 // Release the data set memory. 511 dataquery.close(); 512 }).catch((error: BusinessError) => { 513 promptAction.showToast({ 514 message: 'query_failed_toast' 515 }); 516 hilog.error(domain, TAG, `DAHelper query failed. Cause: ${error.message}`); 517 }); 518 }) 519 } 520 // ... 521 } 522 // ... 523 } 524 // ... 525 } 526 // ... 527 } 528 } 529 ``` 530 5317. Use **batchInsert** to insert data in batches to the DataAbility. 532 533 ```ts 534 import ability from '@ohos.ability.ability'; 535 import featureAbility from '@ohos.ability.featureAbility'; 536 import { BusinessError } from '@ohos.base'; 537 import ohos_data_ability from '@ohos.data.dataAbility'; 538 import rdb from '@ohos.data.rdb'; 539 import promptAction from '@ohos.promptAction'; 540 import hilog from '@ohos.hilog'; 541 542 const TAG: string = 'PageDataAbility'; 543 const domain: number = 0xFF00; 544 545 @Entry 546 @Component 547 struct PageDataAbility { 548 private crowd = new Array({ name: 'Rose', introduction: 'batchInsert_one' } as rdb.ValuesBucket, 549 { name: 'Rose', introduction: 'batchInsert_two' } as rdb.ValuesBucket); 550 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 551 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 552 553 build() { 554 Column() { 555 // ... 556 List({ initialIndex: 0 }) { 557 // ... 558 ListItemGroup() { 559 ListItem() { 560 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 561 // ... 562 } 563 .onClick(() => { 564 // Callback mode: 565 this.DAHelper.batchInsert(this.uri, this.crowd, (error, data) => { 566 if (error && error.code !== 0) { 567 promptAction.showToast({ 568 message: 'batchInsert_failed_toast' 569 }); 570 } else { 571 promptAction.showToast({ 572 message: 'batchInsert_success_toast' 573 }); 574 } 575 hilog.info(domain, TAG, 'DAHelper batchInsert result: ' + data + ', error: ' + JSON.stringify(error)); 576 } 577 ); 578 }) 579 } 580 // ... 581 } 582 // ... 583 } 584 // ... 585 } 586 // ... 587 } 588 } 589 ``` 590 591 592 ```ts 593 import ability from '@ohos.ability.ability'; 594 import featureAbility from '@ohos.ability.featureAbility'; 595 import { BusinessError } from '@ohos.base'; 596 import ohos_data_ability from '@ohos.data.dataAbility'; 597 import rdb from '@ohos.data.rdb'; 598 import promptAction from '@ohos.promptAction'; 599 import hilog from '@ohos.hilog'; 600 601 const TAG: string = 'PageDataAbility'; 602 const domain: number = 0xFF00; 603 604 @Entry 605 @Component 606 struct PageDataAbility { 607 private crowd = new Array({ name: 'Rose', introduction: 'batchInsert_one' } as rdb.ValuesBucket, 608 { name: 'Rose', introduction: 'batchInsert_two' } as rdb.ValuesBucket); 609 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 610 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 611 612 build() { 613 Column() { 614 // ... 615 List({ initialIndex: 0 }) { 616 // ... 617 ListItemGroup() { 618 ListItem() { 619 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 620 // ... 621 } 622 .onClick(() => { 623 // Promise mode (await needs to be used in the asynchronous method): 624 this.DAHelper.batchInsert(this.uri, this.crowd).then((databatchInsert) => { 625 promptAction.showToast({ 626 message: 'batchInsert_success_toast' 627 }); 628 hilog.info(domain, TAG, 'DAHelper batchInsert result: ' + databatchInsert); 629 }).catch((error: BusinessError) => { 630 promptAction.showToast({ 631 message: 'batchInsert_failed_toast' 632 }); 633 hilog.error(domain, TAG, `DAHelper batchInsert failed. Cause: ${error.message}`); 634 }); 635 }) 636 } 637 // ... 638 } 639 // ... 640 } 641 // ... 642 } 643 // ... 644 } 645 } 646 ``` 647 6488. Use **executeBatch** to process data in batches in the DataAbility. 649 650 ```ts 651 import ability from '@ohos.ability.ability'; 652 import featureAbility from '@ohos.ability.featureAbility'; 653 import { BusinessError } from '@ohos.base'; 654 import ohos_data_ability from '@ohos.data.dataAbility'; 655 import rdb from '@ohos.data.rdb'; 656 import promptAction from '@ohos.promptAction'; 657 import hilog from '@ohos.hilog'; 658 659 const TAG: string = 'PageDataAbility'; 660 const domain: number = 0xFF00; 661 662 @Entry 663 @Component 664 struct PageDataAbility { 665 private predicates = new ohos_data_ability.DataAbilityPredicates(); 666 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 667 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 668 669 build() { 670 Column() { 671 // ... 672 List({ initialIndex: 0 }) { 673 // ... 674 ListItemGroup() { 675 ListItem() { 676 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 677 // ... 678 } 679 .onClick(() => { 680 // Callback mode: 681 let operations: Array<ability.DataAbilityOperation> = [{ 682 uri: this.uri, 683 type: featureAbility.DataAbilityOperationType.TYPE_INSERT, 684 valuesBucket: { name: 'Rose', introduction: 'executeBatch' }, 685 predicates: this.predicates, 686 expectedCount: 0, 687 predicatesBackReferences: undefined, 688 interrupted: true, 689 }]; 690 this.DAHelper.executeBatch(this.uri, operations, (error, data) => { 691 if (error && error.code !== 0) { 692 promptAction.showToast({ 693 message: 'executeBatch_failed_toast' 694 }); 695 } else { 696 promptAction.showToast({ 697 message: 'executeBatch_success_toast' 698 }); 699 } 700 hilog.info(domain, TAG, `DAHelper executeBatch, result: ` + JSON.stringify(data) + ', error: ' + JSON.stringify(error)); 701 }); 702 }) 703 } 704 // ... 705 } 706 // ... 707 } 708 // ... 709 } 710 // ... 711 } 712 } 713 ``` 714 715 716 ```ts 717 import ability from '@ohos.ability.ability'; 718 import featureAbility from '@ohos.ability.featureAbility'; 719 import { BusinessError } from '@ohos.base'; 720 import ohos_data_ability from '@ohos.data.dataAbility'; 721 import rdb from '@ohos.data.rdb'; 722 import promptAction from '@ohos.promptAction'; 723 import hilog from '@ohos.hilog'; 724 725 const TAG: string = 'PageDataAbility'; 726 const domain: number = 0xFF00; 727 728 @Entry 729 @Component 730 struct PageDataAbility { 731 private predicates = new ohos_data_ability.DataAbilityPredicates(); 732 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 733 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 734 735 build() { 736 Column() { 737 // ... 738 List({ initialIndex: 0 }) { 739 // ... 740 ListItemGroup() { 741 ListItem() { 742 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 743 // ... 744 } 745 .onClick(() => { 746 // Promise mode (await needs to be used in the asynchronous method): 747 let operations: Array<ability.DataAbilityOperation> = [{ 748 uri: this.uri, 749 type: featureAbility.DataAbilityOperationType.TYPE_INSERT, 750 valuesBucket: { name: 'Rose', introduction: 'executeBatch' }, 751 predicates: this.predicates, 752 expectedCount: 0, 753 predicatesBackReferences: undefined, 754 interrupted: true, 755 }]; 756 this.DAHelper.executeBatch(this.uri, operations).then((dataquery) => { 757 promptAction.showToast({ 758 message: 'executeBatch_success_toast' 759 }); 760 hilog.info(domain, TAG, 'DAHelper executeBatch result: ' + JSON.stringify(dataquery)); 761 }).catch((error: BusinessError) => { 762 promptAction.showToast({ 763 message: 'executeBatch_failed_toast' 764 }); 765 hilog.error(domain, TAG, `DAHelper executeBatch failed. Cause: ${error.message}`); 766 }); 767 }) 768 } 769 // ... 770 } 771 // ... 772 } 773 // ... 774 } 775 // ... 776 } 777 } 778 ``` 779 780 781The APIs for operating a DataAbility are provided by **DataAbilityHelper**. For details about the APIs, see [DataAbilityHelper](../reference/apis-ability-kit/js-apis-inner-ability-dataAbilityHelper.md). 782