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