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