• 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.relationalStore
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 relationalStore from '@ohos.data.relationalStore'
27
28   let urivar = "dataability:///com.ix.DataAbility"
29   let DAHelper = featureAbility.acquireDataAbilityHelper(urivar);
30   ```
31
322. 构建数据库相关的RDB数据。
33
34   ```ts
35   import ohos_data_ability from '@ohos.data.dataAbility'
36   import rdb from '@ohos.data.rdb'
37
38   let valuesBucket: rdb.ValuesBucket = {"name": "gaolu"}
39   let da = new ohos_data_ability.DataAbilityPredicates()
40   let valArray = new Array("value1");
41   let cars = new Array({"batchInsert1" : "value1",} as rdb.ValuesBucket);
42   ```
43
44   注:关于DataAbilityPredicates的详细内容,请参考[DataAbility谓词](../reference/apis/js-apis-data-ability.md)。
45
463. 调用insert方法向指定的DataAbility子模块插入数据。
47
48   ```ts
49   import { BusinessError } from '@ohos.base';
50
51   // callback方式调用:
52   DAHelper.insert(
53     urivar,
54     valuesBucket,
55     (error: BusinessError, data: number) => {
56       console.info("DAHelper insert result: " + data)
57     }
58   );
59   ```
60
61
62   ```ts
63   import featureAbility from '@ohos.ability.featureAbility'
64   import { BusinessError } from '@ohos.base';
65
66   let urivar = "dataability:///com.ix.DataAbility"
67   let DAHelper = featureAbility.acquireDataAbilityHelper(urivar);
68   // promise方式调用(await需要在async方法中使用):
69   let datainsert = await DAHelper.insert(urivar, valuesBucket).then((data) => {
70     console.info("insert success.");
71   }).catch((error: BusinessError) => {
72     console.error("insert failed.");
73   });
74   ```
75
764. 调用delete方法删除DataAbility子模块中指定的数据。
77
78   ```ts
79   import featureAbility from '@ohos.ability.featureAbility'
80
81   let urivar = "dataability:///com.ix.DataAbility"
82   let DAHelper = featureAbility.acquireDataAbilityHelper(urivar);
83   // callback方式调用:
84   DAHelper.delete(
85     urivar,
86     da,
87     (error, data) => {
88       console.info("DAHelper delete result: " + data)
89     }
90   );
91   ```
92
93
94   ```ts
95   import featureAbility from '@ohos.ability.featureAbility'
96
97   let urivar = "dataability:///com.ix.DataAbility"
98   let DAHelper = featureAbility.acquireDataAbilityHelper(urivar);
99   // promise方式调用(await需要在async方法中使用):
100   let datadelete = await DAHelper.delete(
101     urivar,
102     da,
103   );
104   ```
105
1065. 调用update方法更新指定DataAbility子模块中的数据。
107
108   ```ts
109   import featureAbility from '@ohos.ability.featureAbility'
110
111   let urivar = "dataability:///com.ix.DataAbility"
112   let DAHelper = featureAbility.acquireDataAbilityHelper(urivar);
113   // callback方式调用:
114   DAHelper.update(
115     urivar,
116     valuesBucket,
117     da,
118     (error, data) => {
119       console.info("DAHelper update result: " + data)
120     }
121   );
122   ```
123
124
125   ```ts
126   import featureAbility from '@ohos.ability.featureAbility'
127
128   let urivar = "dataability:///com.ix.DataAbility"
129   let DAHelper = featureAbility.acquireDataAbilityHelper(urivar);
130   // promise方式调用(await需要在async方法中使用):
131   let dataupdate = await DAHelper.update(
132     urivar,
133     valuesBucket,
134     da,
135   );
136   ```
137
1386. 调用query方法在指定的DataAbility子模块中查找数据。
139
140   ```ts
141   import featureAbility from '@ohos.ability.featureAbility'
142
143   let urivar = "dataability:///com.ix.DataAbility"
144   let DAHelper = featureAbility.acquireDataAbilityHelper(urivar);
145   // callback方式调用:
146   DAHelper.query(
147     urivar,
148     valArray,
149     da,
150     (error, data) => {
151       console.info("DAHelper query result: " + data)
152     }
153   );
154   ```
155
156
157   ```ts
158   import featureAbility from '@ohos.ability.featureAbility'
159
160   let urivar = "dataability:///com.ix.DataAbility"
161   let DAHelper = featureAbility.acquireDataAbilityHelper(urivar);
162   // promise方式调用(await需要在async方法中使用):
163   let dataquery = await DAHelper.query(
164     urivar,
165     valArray,
166     da
167   );
168   ```
169
1707. 调用batchInsert方法向指定的DataAbility子模块批量插入数据。
171
172   ```ts
173   import featureAbility from '@ohos.ability.featureAbility'
174
175   let urivar = "dataability:///com.ix.DataAbility"
176   let DAHelper = featureAbility.acquireDataAbilityHelper(urivar);
177   // callback方式调用:
178   DAHelper.batchInsert(
179     urivar,
180     cars,
181     (error, data) => {
182       console.info("DAHelper batchInsert result: " + data)
183     }
184   );
185   ```
186
187
188   ```ts
189   import featureAbility from '@ohos.ability.featureAbility'
190
191   let urivar = "dataability:///com.ix.DataAbility"
192   let DAHelper = featureAbility.acquireDataAbilityHelper(urivar);
193   // promise方式调用(await需要在async方法中使用):
194   let databatchInsert = await DAHelper.batchInsert(
195     urivar,
196     cars
197   );
198   ```
199
2008. 调用executeBatch方法向指定的DataAbility子模块进行数据的批量处理。
201
202   ```ts
203   import featureAbility from '@ohos.ability.featureAbility'
204
205   let urivar = "dataability:///com.ix.DataAbility"
206   let DAHelper = featureAbility.acquireDataAbilityHelper(urivar);
207   // callback方式调用:
208   DAHelper.executeBatch(
209     urivar,
210     [
211       {
212         uri: urivar,
213         type: featureAbility.DataAbilityOperationType.TYPE_INSERT,
214         valuesBucket: {"executeBatch" : "value1",},
215         predicates: da,
216         expectedCount:0,
217         predicatesBackReferences: undefined,
218         interrupted:true,
219       }
220     ],
221     (error, data) => {
222       console.info("DAHelper executeBatch result: " + data)
223     }
224   );
225   ```
226
227
228   ```ts
229   import featureAbility from '@ohos.ability.featureAbility'
230
231   let urivar = "dataability:///com.ix.DataAbility"
232   let DAHelper = featureAbility.acquireDataAbilityHelper(urivar);
233   // promise方式调用(await需要在async方法中使用):
234   let dataexecuteBatch = await DAHelper.executeBatch(
235     urivar,
236     [
237       {
238         uri: urivar,
239         type: featureAbility.DataAbilityOperationType.TYPE_INSERT,
240         valuesBucket:
241         {
242           "executeBatch" : "value1",
243         },
244         predicates: da,
245         expectedCount:0,
246         predicatesBackReferences: undefined,
247         interrupted:true,
248       }
249     ]
250   );
251   ```
252
253
254DataAbility的客户端的接口是由工具接口类对象DataAbilityHelper向外提供,相关接口可参考[DataAbilityHelper模块](../reference/apis/js-apis-inner-ability-dataAbilityHelper.md)。
255