OpenHarmony实战开发-分布式关系型数据库

介绍

本示例使用@ohos.data.relationalStore 接口和@ohos.distributedDeviceManager 接口展示了在eTS中分布式关系型数据库的使用,在增、删、改、查的基本操作外,还包括分布式数据库的数据同步同能。

效果预览

在这里插入图片描述
使用说明:

1.启动应用后点击“+”按钮可以添加联系人;
2.点击联系人可以进入编辑界面编辑联系人信息;
3.长按联系人进入多选状态,底部有“全选”、“取消”、“删除”、“退出”按钮,点击退出可以退出多选状态;
4.点击右上角更多按钮,点击“连接设备”,选择要同步数据的设备,连接成功后可以开始将本端数据同步到对端;
5.点击右上角更多按钮,点击“设置”可以进入设置界面设置数据同步方式,包括自动同步和手动同步。

工程目录

entry/src/main/ets/
|---common
|   |---BasicDataSource.ets                     // 联系人列表懒加载数据
|   |---BottomBtn.ets                           // 
|   |---ContactItem.ets                         // 联系人
|   |---DeviceDialog.ets                        // 设备列表
|   |---PopupMenu.ets                           // 设备选择
|   |---QueryItem.ets                           // 联系人详情
|   |---SearchBar.ets                           // 搜索
|   |---TitleBar.ets                            // title
|---model
|   |---Contact.ets                             // 联系人数据
|   |---LiteStore.ets                           // 轻量级数据操作
|   |---Logger.ts                               // 日志工具
|   |---RdbConst.ets                            // 数据库参数常量集
|   |---RdbModel.ets                            // 分布式工具
|   |---RemoteDeviceModel.ets                   // 分布式设备管理
|---pages
|   |---ContactEdit.ets                         // 编辑联系人
|   |---Index.ets                               // 首页
|   |---SearchPage.ets                          // 搜索设备
|   |---Settings.ets                            // 设置

具体实现

  • 数据库的增、删、改、查操作都在RdbModel中
  • 数据库操作:使用@ohos.data.relationalStore
    接口的getRdbStore获得一个相关的操作型关系数据库RdbStore,通过这个RdbStore调用相关接口进行增删改查,RdbStore.insert数据插入,RdbStore.delete数据删除,RdbStore.update更新数据,RdbStore.query根据条件查询数据;
  • 数据同步:RdbStore.on注册数据库观察者,使用RdbStore.obtainDistributedTableName根据本地表名获取指定远程设备的分布式表名,数据发生变动时通过RdbStore.sync同步数据,不需要用时删除指定观察者使用RdbStore.off。
  • 连接设备管理在RemoteDeviceModel中
  • 设备同步:设备同步数据需要ohos.permission.DISTRIBUTED_DATASYNC权限,在页面渲染前申请权限,使用@ohos.distributedDeviceManager接口,首先通过createDeviceManager创建设备管理器实例,然后通过getTrustedDeviceListSync同步获取所有可信设备列表
  • 设备连接:首先通过on方法注册设备状态,例如发现设备,设备连接失败,然后通过startDeviceDiscovery方法发现周边设备,然后选择连接设备,再用startAbility
    启动连接设备的应用。

相关权限

ohos.permission.DISTRIBUTED_DATASYNC

允许系统应用获取分布式设备的认证组网能力:ohos.permission.ACCESS_SERVICE_DM

依赖

不涉及。

约束与限制

1.本示例的同步功能需要两台设备组网后测试;
2.本示例仅支持标准系统上运行,支持设备:RK3568。
3.本示例为Stage模型,支持API10版本SDK,SDK版本号(API Version 10 Release),镜像版本号(4.0 Release)
4.本示例需要使用DevEco Studio 版本号(4.0 Release)及以上版本才可编译运行。
5.本示例需要使用@ohos.distributedDeviceManager系统权限的系统接口。使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code/SuperFeature/DistributedAppDev/DistributedRdb/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master

为了帮助大家更深入有效的学习到鸿蒙开发知识点,小编特意给大家准备了一份全套最新版的HarmonyOS NEXT学习资源,获取完整版方式请点击→HarmonyOS教学视频:https://qr21.cn/FV7h05

HarmonyOS教学视频:语法ArkTS、TypeScript、ArkUI等…视频教程

在这里插入图片描述
在这里插入图片描述

鸿蒙生态应用开发白皮书V2.0PDF: 获取完整版白皮书方式请点击→https://qr21.cn/FV7h05

在这里插入图片描述

鸿蒙 (Harmony OS)开发学习手册→https://qr21.cn/FV7h05

一、入门必看

1.应用开发导读(ArkTS)
2………
在这里插入图片描述

二、HarmonyOS 概念→https://qr21.cn/FV7h05

1.系统定义
2.技术架构
3.技术特性
4.系统安全
5…

在这里插入图片描述

三、如何快速入门?→https://qr21.cn/FV7h05

1.基本概念
2.构建第一个ArkTS应用
3…

在这里插入图片描述

四、开发基础知识→https://qr21.cn/FV7h05

1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
在这里插入图片描述

五、基于ArkTS 开发→https://qr21.cn/FV7h05

1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
在这里插入图片描述

更多了解更多鸿蒙开发的相关知识可以参考:https://qr21.cn/FV7h05

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/510512.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络以太网之(2)VLAN协议

网络以太网之(1)VLAN协议 Author: Once Day Date: 2024年4月1日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文档可参考专栏:通信网络技术_Once-Day…

主流公链 - Fantom

Fantom:高性能的区块链协议 Fantom是一种开创性的区块链协议,旨在革新去中心化应用和数字金融领域 技术特点 共识机制 Lachesis协议:Fantom使用了Lachesis协议作为其共识算法。Lachesis是一种 异步拜占庭容错(ABFT)共…

2023数模国赛C 题 蔬菜类商品的自动定价与补货决策-完整版创新多思路详解(含代码)

题目简评:看下来C题是三道题目里简单一些的,考察的点比较综合,偏数据分析。涉及预测模型和运筹优化(线性规划),还设了一问开放型问题,适合新手入门,发挥空间大。 题目分析与思路: 背景&#x…

文心一言 vs GPT-4 ----全面横向比较

文心一言 (Wenxin Yiyan) 和 GPT-4 是两个强大的人工智能语言模型,它们在处理自然语言方面表现出了出色的能力。但它们有一些关键的区别和优势。以下是它们的横向比较: 公司和平台: * 文心一言是由百度开发的中文语言模型,专门为…

【JavaScript】函数 ③ ( 形参 与 实参 匹配问题 | 实参个数 = 形参个数 | 实参个数 > 形参个数 | 实参个数 < 形参个数 )

文章目录 一、JavaScript 函数 形参 与 实参 匹配问题1、函数形参与实参不匹配问题2、形参与实参个数匹配3、实参个数 > 形参个数4、实参个数 < 形参个数5、完整代码示例 一、JavaScript 函数 形参 与 实参 匹配问题 1、函数形参与实参不匹配问题 在 其它语言 中 , 如 Ja…

Java 设计模式系列:备忘录模式

简介 备忘录模式是一种软件设计模式&#xff0c;用于在不破坏封闭的前提下捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 备忘录模式提供了一种状态恢复的实现机制&#xff0c;使得用户可以方便地回到一个特定…

【VTKExamples::Meshes】第三期 ClipClosedSurface

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例ClipClosedSurface,并解析接口vtkClipClosedSurface,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(…

HTML标签之表格标签和表格案例

表格标签的使用案例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevic…

yolov7代码 | model.named_models

文章目录 前言1. print(model)2. print(model.named_models)2.1 print(name)2.2 print(module)2.3 print(f"{name}:: {module}") 3. hasattr(module, weight) 前言 了解model.named_models&#xff0c;为剪枝做准备。 剪枝有一些层如果你不想剪掉&#xff0c;那就用…

IP代理池赋能Python网络爬虫

文章目录 什么是IP代理池代理服务器IP代理池的作用IP代理池的构建IP代理池的管理 相关案例IP代理在爬虫中的运用IP代理在数据收集中的运用IP代理在反爬虫中的运用 结语 什么是IP代理池 IP代理池是一个存储了多个可用代理IP地址的资源池&#xff0c;用于在网络爬虫、数据采集、…

PS从入门到精通视频各类教程整理全集,包含素材、作业等(6)复发

PS从入门到精通视频各类教程整理全集&#xff0c;包含素材、作业等 最新PS以及插件合集&#xff0c;可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制&#xff0c;今天先分享到这里&#xff0c;后续持续更新 橘子老师章节9-17图像的调色 等文件 https://www.a…

网站备案进度

1.网站开通后&#xff0c;请在网站首页底部中间位置放置您的ICP备案号并链接至"https://beian.miit.gov.cn"。 并在开通之日起30日内登录全国互联网安全管理平台提交公安联网备案申请。获取《公安备案信息填写指南》&#xff0c;或者通过“公安备案助手”协助您完成申…

文件操作的详序

1.为什么使用文件&#xff1f; 如果没有文件&#xff0c;我们写的程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;数据就丢失了&#xff0c;等再次运行程序&#xff0c;是看不到程序的数据的&#xff0c;如果将数据进行持久化的保存…

【六 (2)机器学习-机器学习建模步骤/kaggle房价回归实战】

一、确定问题和目标&#xff1a; 1、业务需求分析&#xff1a; 与业务团队或相关利益方进行深入沟通&#xff0c;了解他们的需求和期望。 分析业务流程&#xff0c;找出可能的瓶颈、机会或挑战。 思考机器学习如何帮助解决这些问题或实现业务目标。 2、问题定义&#xff1a;…

四种IP地址的区别

动态IP、固定IP、实体IP和虚拟IP是计算机网络中常见的IP地址类型&#xff0c;它们在分配方式、稳定性、应用场景等方面存在显著的差异。下面将详细阐述这四种IP地址的区别。 首先&#xff0c;动态IP地址是一种临时分配给设备或主机的可变IP地址。每次设备连接到网络时&#xf…

4.2作业

使用模板类&#xff0c;实现顺序栈 #include <iostream> #include <iomanip>using namespace std;template <typename T>class stack{public:T *data;T top;T MAXsizeof;//操作函数stack(int buf 100); //栈的建立bool push(const T a); //出栈bool pop(); …

rhce复习1

虚拟机初始化配置 bash 1、安装系统&#xff0c;选择对应的linux版本&#xff0c;阿里云镜像站点、163镜像站点等等 2、装好系统后&#xff0c;先配置网络&#xff1a;ip地址&#xff0c;掩码&#xff0c;网关&#xff0c;dns域名解析服务器 [rootlocalhost ~]# nmtui [rootlo…

3.写一个char类型的字符数组,对该数组访问越界时抛出异常,并做处理。

#include <iostream>using namespace std;char arr[10]"12345678"; void show(int i) {if(i>10){throw int(2);}cout << arr[i] <<endl; } int main() {int i;cin >> i;try {show(i);} catch (int) {cout << "越界" <…

SSM框架学习——工厂模式、Spring核心容器与Bean

工厂模式、核心容器与Spring Bean 工厂模式 工厂模式是Java中常用的一种设计模式&#xff0c;这种类型的设计模式属于创建型模式。说白了在代码层面就是取消了new的使用。 工厂模式有三种&#xff1a; 简单工厂模式工厂方法模式抽象工厂模式 举个例子&#xff0c;我们去买…

无缝投屏技巧:怎样将Windows电脑屏幕共享到安卓手机?

使用屏幕共享技术的好处是多方面的。首先&#xff0c;它为远程协助提供了极大的便利。当用户遇到电脑操作难题时&#xff0c;技术支持人员可以远程查看用户的屏幕&#xff0c;实时指导解决问题&#xff0c;就像他们身临其境一样。其次&#xff0c;这种技术也为教育和培训带来了…