HarmonyOS数据库篇之四——本地DataAbility 原创

starLWW
发布于 2022-1-7 16:49
浏览
3收藏

DataAbility主要功能是对外共享数据,可以共享给本地第三方应用,也可以跨设备共享。共享数据的类型可以是数据库这种逻辑比较复杂的数据,也可以是文件类型的数据。

本篇内容介绍通过ORM对象关系映射数据库存储数据,并通过DataAbility共享数据。

首先介绍什么是DataAbility,以及DataAbility使用时的步骤及注意事项;其次通过简单的小案例实现用ORM对象关系映射方式实现DataAbility。HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区 HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区

 
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区                                              
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区                                              
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区                                           
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区                                              
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
##案例:使用ORM数据库存储单词数据,使用Data提供数据访问接口

### 1. 创建数据库与数据表实体类

1)修改entry模块的build.gradle文件,添加注解支持
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
2)数据表实体类(getter、setter方法略)
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
3)数据库实体类
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
### 2. 创建DataAbility
创建DataAbility
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
### 3. 注册DataAbility(config.json)
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
### 4. 访问Data
1) 在config.json中申请权限
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
2)在Slice中编辑测试代码
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区 
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
### 5. (可选)监听数据改变
1)在DataAbility中,当有数据改变时(增、删、改)时,通知访问者数据有更新
//声明Uri常量
private final Uri MY_URI =Uri.parse("dataability://com.example.lww.ch9dataabilitytest.WordDataAbility");
//通知数据更新
DataAbilityHelper.creator(this).notifyChange(uri);

DataAbilityHelper.creator(this, uri).notifyChange(uri);
**注意:**
**1. SDK6版本需使用creator()方法,该方法deprecated了,在SDK7版本中使用create()方法。**

**2. 不可以使用如下操作:**
**dataAbilityHelper.notifyChange(MY_URI);**

2)在调用Data接口的访问者中(如:当前应用中)自定义数据改变观察者

HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区

3)在调用Data接口的访问者中(如:当前应用的Slice中)注册数据改变观察者

HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区

数据改变观察者总结:

(1)Preferences中:

HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区

(2)RDB关系数据库

HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区

(3)ORM对象关系映射数据库

HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区

或者

HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区
HarmonyOS数据库篇之四——本地DataAbility-鸿蒙开发者社区

附:

文件类型数据的共享需要开发者在Data中重写FileDescriptor openFile​(Uri uri, String mode)方法来操作文件:uri为客户端传入的请求目标路径;mode为开发者对文件的操作选项,可选方式包含“r”(读), “w”(写), “rw”(读写)等。

开发者可通过MessageParcel静态方法dupFileDescriptor()复制待操作文件流的文件描述符,并将其返回,供远端应用访问文件。

 

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-1-7 16:49:01修改
3
收藏 3
回复
举报
回复
    相关推荐