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