DataAbility进行数据库操作的简单使用 原创 精华
作者:肖瑜博
DataAbility介绍:
使用Data模板的Ability(以下简称“Data”)有助于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法。Data既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。
数据的存放形式多样,可以是数据库,也可以是磁盘上的文件。Data对外提供对数据的增、删、改、查,以及打开文件等接口,这些接口的具体实现由开发者提供。
效果展示
介绍DataAbility的使用方法,对数据库进行数据的访问操作。
1.每次插入的数据为:id=自增长主键;name=jack;age=23;salary=3456.0
2.修改数据:修改id为2的数据,并把数据改为:name=rose;age=45;salary=1234.9
3.删除数据:删除id为1的那一条数据;
4.查询数据:查询表中所有的数据,并且分行显示。
新建一个DataAbility
初始化数据库操作
我们这里以关系型数据库为例,在DataAbility的onStart方法里边初始化数据库、表和字段的相关操作:
对于关系型数据库和对象型数据库的基本操作,可以看这一篇文章:
https://ost.51cto.com/posts/10599
实现DataAbility类内部的增删改查操作
在DataAbility提供对应的增删改查方法里,实现数据库的的增删改查操作;这里我们使用的是关系型数据库。
RdbStore进行查询、修改、删除等操作时,参数RdbPredicates需要由DataAbilityUtils类和DataAbilityPredicates对象转换得来。
URI介绍
Data的提供方和使用方都通过URI(Uniform Resource Identifier)来标识一个具体的数据,例如数据库中的某个表或磁盘上的某个文件。HarmonyOS的URI仍基于URI通用标准,格式如下:
- scheme:协议方案名,固定为“dataability”,代表Data Ability所使用的协议类型。
- authority:设备ID。如果为跨设备场景,则为目标设备的ID;如果为本地设备场景,则不需要填写。
- path:资源的路径信息,代表特定资源的位置信息。
- query:查询参数。
- fragment:可以用于指示要访问的子资源。
URI示例:
-
跨设备场景:dataability://device_id/com.domainname.dataability.persondata/person/10
-
本地设备:dataability:///com.domainname.dataability.persondata/person/10
说明
本地设备的“device_id”字段为空,因此在“dataability:”后面有三个“/”。
使用DataAbilityHelper对象调用DataAbility的增删改查操作:
在slice里边声明全局变量DataAbilityHelper和Uri的对象,以便页面进行增删改查的操作。
1.获取Uri的值:
2.在slice的onStart方法初始化一个DataAbilityHelper和Uri对象,
注意:由于是对本机操作,本地设备的“device_id”字段为空,因此在“dataability:”后面有三个“/”。
新增数据:
删除数据:
修改数据:
查询数据:
总结
1.DataAbility只是华为提供的同设备或不同设备之间的应用进行数据访问的接口,具体的数据持久化保存还是要依赖于数据库或者其他文件类型;
2.RdbPredicates需要由DataAbilityUtils类和DataAbilityPredicates对象转换得来;
3.Data的提供方和使用方都通过URI(Uniform Resource Identifier)来标识一个具体的数据,例如数据库中的某个表或磁盘上的某个文件;
4.当访问本机应用的数据库时,本地设备的“device_id”字段为空,因此在“dataability:”后面有三个“/”。
5.在slice页面调用DataAbilityHelper对象的接口进行数据操作。
更多原创内容请关注:中软国际 HarmonyOS 技术团队
入门到精通、技巧到案例,系统化分享HarmonyOS开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。
很实用的数据库操作方法分享,收藏了。