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