【木棉花】分布式数据库 原创 精华
前言
继上一篇轻量级偏好数据库的学习,为了让大伙更好的了解学习数据库的类型,我今天就推出分布式数据库的学习,如果还不清楚轻量级偏好数据库的童鞋,建议查看我的上一篇学习笔记:【木棉花】:轻量级偏好数据库学习笔记–沈泳鑫,因为分布式数据库和轻量级数据库之间是有很多相识之处的。
为了更好地熟练掌握鸿蒙手机应用开发,为了供大家更方便的学习鸿蒙手机的应用开发,我会将所有的笔记都整理到Awesome-HarmonyOS_木棉花中,更多详细学习资料请查看Awesome-HarmonyOS_木棉花。
正文
基本概念
相信大家看完我的 “轻量级偏好数据库” 的学习笔记之后,已经是清楚什么是键值对了吧。那轻量级偏好数据库是以键值对的形式在存储数据,同样的,分布式数据库也是以键值对的形式在存储数据的。那有童鞋就会问了,没事整那么多数据库干什么呢,轻量级偏好数据库和分布式数据库之间的差异在哪呢,官网上对分布式数据库的解释是这样的:“通过结合帐号、应用和数据库三元组,分布式数据服务对属于不同的应用的数据进行隔离,保证不同应用之间的数据不能通过分布式数据服务互相访问。在通过可信认证的设备间,分布式数据服务支持应用数据相互同步,为用户提供在多种终端设备上一致的数据访问体验。” 那通俗易懂的来讲就是分布式数据库除了可以存储数据,还是可以让多台设备共用一个数据库,它和轻量级偏好数据的区别就在于它可以实现设备间数据的同步。这也是分布式数据库的优势所在,那根据这一功能,我们就可以实现出双人小游戏了。
创建工程
打开DevEco Studio,点击左上角的File,点击New,再选择New Project,选择Empty Ability(java) ,点击Next。
将工程命名为DistributeDataBase,在Project Type中选择Application,选择API 5,并且在Device Type中选择Phone选项,点击Finish。,工程就创建完成了。
设计UI界面
那我就把UI界面设计得与轻量级偏好数据库的界面是一样的,这就便于我们来对比学习分布式数据库的功能还有加深对轻量级偏好数据库的印象。
效果界面:
与轻量级偏好数据库相同,需要在entry>src>main>java>resources>base>graphic增加两个名字分别为background_button和background_text的文件(具体操作请参考上一篇文章)。
background_button文件代码如下:
background_text文件代码如下:
那接下来就可以在ability_main.xml文件中设置UI界面了。
代码解读:
ohos:orientation=“vertical” 为排列方式为垂直排布。
ohos:background_element=“$graphic:background_text” 为背景引用为graphic文件下background_text的内容。
ohos:layout_alignment=“left” 对齐方式为左对齐
ohos:right_margin=“20vp” 为与右边组件的距离为20vp
ohos:hint=“请输入水果名称…” 为在输入框提示输入“请输入水果名称…”
申请权限
相比于轻量级偏好数据库,分布式数据库还需要添加相关的权限。
在config.json的abilities之前添加非敏感权限
同时我们还需要在java>com.example.mydistributedatabase>slice>MainAbility中通过弹窗的形式动态申请数据交互的敏感权限,在onStart中添加
创建分布式数据库
那我们接下来就可以在java>com.example.mydistributedatabase>slice>MainAbilitySlice中实现出数据库了。
首先还是先定义数据:
写一个名为createManager的函数用于创建数据库管理类
再写一个函数用于创建数据库
写一个函数用于订阅数据库中数据的变化
分别写一个函数用于实现写入操作还有读操作
写一个函数调用创建管理类还有数据库的函数用于初始化数据库
写一个函数可以用于弹出提示窗口
再写三个按钮对应的点击事件
最后在onStart中调用刚刚实现的函数
那么一个简单的分布式数据库就完成了。那接下来我们就需要调用两个模拟器来查看效果了。
那这样两台模拟器就调用出来了,那现在我们让这两台模拟器可以同时运行
然后在点击运行就可以了。
在其中一台设备输入水果的名称再输入一个数字,再点击“Wrtie DB”
在另外一台设备点击读取按钮,就可以读取数据库中的数据
点击删除按钮就可以删除数据库了
结语
源码就放在附件中了,可以供大家下载之后跑一下试试看效果,感兴趣的可以一步接一步跟着编写。再不要脸的重申一遍更多学习资料学习笔记,请关注Awesome-HarmonyOS_木棉花,这份学习笔记也会写入其中。如果有遇到什么问题,或者查找出其中的错误之处,或者能够优化代码和界面,也欢迎各位在评论区留言讨论,让我们一起学习进步!
感谢分享。(文末表情包过于魔性)
你这个也太魔性了吧
瞅一瞅,看一看 学习中、~