• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 访问DataAbility
2
3
4访问DataAbility需导入基础依赖包,以及获取与DataAbility子模块通信的URI字符串。
5
6
7其中,基础依赖包包括:
8
9
10- @ohos.ability.featureAbility
11
12- @ohos.data.dataAbility
13
14- @ohos.data.rdb
15
16
17访问DataAbility的示例代码如下:
18
19
201. 创建工具接口类对象。
21
22   ```ts
23   // 作为参数传递的URI,与config中定义的URI的区别是多了一个"/",有三个"/"
24   import featureAbility from '@ohos.ability.featureAbility'
25   import ohos_data_ability from '@ohos.data.dataAbility'
26   import ohos_data_rdb from '@ohos.data.rdb'
27
28   let urivar = "dataability:///com.ix.DataAbility"
29   let DAHelper = featureAbility.acquireDataAbilityHelper(urivar);
30   ```
31
322. 构建数据库相关的RDB数据。
33
34   ```ts
35   let valuesBucket = {"name": "gaolu"}
36   let da = new ohos_data_ability.DataAbilityPredicates()
37   let valArray =new Array("value1");
38   let cars = new Array({"batchInsert1" : "value1",});
39   ```
40
41   注:关于DataAbilityPredicates的详细内容,请参考[DataAbility谓词](../reference/apis/js-apis-data-ability.md)。
42
433. 调用insert方法向指定的DataAbility子模块插入数据。
44
45   ```ts
46   // callback方式调用:
47   DAHelper.insert(
48     urivar,
49     valuesBucket,
50     (error, data) => {
51       console.info("DAHelper insert result: " + data)
52     }
53   );
54   ```
55
56
57   ```ts
58   // promise方式调用(await需要在async方法中使用):
59   let datainsert = await DAHelper.insert(urivar, valuesBucket).then((data) => {
60     console.info("insert success.");
61   }).catch((error) => {
62     console.error("insert failed.");
63   });
64   ```
65
664. 调用delete方法删除DataAbility子模块中指定的数据。
67
68   ```ts
69   // callback方式调用:
70   DAHelper.delete(
71     urivar,
72     da,
73     (error, data) => {
74       console.info("DAHelper delete result: " + data)
75     }
76   );
77   ```
78
79
80   ```ts
81   // promise方式调用(await需要在async方法中使用):
82   let datadelete = await DAHelper.delete(
83     urivar,
84     da,
85   );
86   ```
87
885. 调用update方法更新指定DataAbility子模块中的数据。
89
90   ```ts
91   // callback方式调用:
92   DAHelper.update(
93     urivar,
94     valuesBucket,
95     da,
96     (error, data) => {
97       console.info("DAHelper update result: " + data)
98     }
99   );
100   ```
101
102
103   ```ts
104   // promise方式调用(await需要在async方法中使用):
105   let dataupdate = await DAHelper.update(
106     urivar,
107     valuesBucket,
108     da,
109   );
110   ```
111
1126. 调用query方法在指定的DataAbility子模块中查找数据。
113
114   ```ts
115   // callback方式调用:
116   DAHelper.query(
117     urivar,
118     valArray,
119     da,
120     (error, data) => {
121       console.info("DAHelper query result: " + data)
122     }
123   );
124   ```
125
126
127   ```ts
128   // promise方式调用(await需要在async方法中使用):
129   let dataquery = await DAHelper.query(
130     urivar,
131     valArray,
132     da
133   );
134   ```
135
1367. 调用batchInsert方法向指定的DataAbility子模块批量插入数据。
137
138   ```ts
139   // callback方式调用:
140   DAHelper.batchInsert(
141     urivar,
142     cars,
143     (error, data) => {
144       console.info("DAHelper batchInsert result: " + data)
145     }
146   );
147   ```
148
149
150   ```ts
151   // promise方式调用(await需要在async方法中使用):
152   let databatchInsert = await DAHelper.batchInsert(
153     urivar,
154     cars
155   );
156   ```
157
1588. 调用executeBatch方法向指定的DataAbility子模块进行数据的批量处理。
159
160   ```ts
161   // callback方式调用:
162   DAHelper.executeBatch(
163     urivar,
164     [
165       {
166         uri: urivar,
167         type: featureAbility.DataAbilityOperationType.TYPE_INSERT,
168         valuesBucket: {"executeBatch" : "value1",},
169         predicates: da,
170         expectedCount:0,
171         predicatesBackReferences: null,
172         interrupted:true,
173       }
174     ],
175     (error, data) => {
176       console.info("DAHelper executeBatch result: " + data)
177     }
178   );
179   ```
180
181
182   ```ts
183   // promise方式调用(await需要在async方法中使用):
184   let dataexecuteBatch = await DAHelper.executeBatch(
185     urivar,
186     [
187       {
188         uri: urivar,
189         type: featureAbility.DataAbilityOperationType.TYPE_INSERT,
190         valuesBucket:
191         {
192           "executeBatch" : "value1",
193         },
194         predicates: da,
195         expectedCount:0,
196         predicatesBackReferences: null,
197         interrupted:true,
198       }
199     ]
200   );
201   ```
202
203
204DataAbility的客户端的接口是由工具接口类对象DataAbilityHelper向外提供,相关接口可参考[DataAbilityHelper模块](../reference/apis/js-apis-inner-ability-dataAbilityHelper.md)。
205