# Rdb
**Repository Path**: ljh-project/Rdb
## Basic Information
- **Project Name**: Rdb
- **Description**: 本篇Codelab介绍了关系型数据库的基本用法,包括增、删、改、查操作。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 9
- **Created**: 2025-05-08
- **Last Updated**: 2025-09-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 基于分布式关系型数据库实现账单功能
## 项目简介
本Codelab以分布式账单为例,使用关系型数据库的相关接口实现了对账单的增、删、改、查和同步操作。效果图如下:
## 效果预览
| 新增 | 删除 | 编辑 | 查询 |
|:------------------------------------------------------------:|:----------------------------------------------------------:|:-----------------------------------------------------------:|:------------------------------------------------------------:|
|
|
|
|
|
## 使用说明
1. 在应用首页,点击右下角“添加”图标,在弹出的窗口中选择账目类型并填写金额,点击“确定”按钮添加一条账目。
2. 在应用首页,点击右上角“编辑”图标,选中想要删除的账目,点击下方“删除”图标,删除选择的账目。
3. 在应用首页,点击想要编辑的账目,在弹出的窗口中更改账目类型或金额,点击“确定”按钮修改一条账目。
4. 在应用首页,点击搜索栏,填写想要查找的账目金额,点击“搜索”图标后下方刷新为金额为查找金额的账目,搜索栏为空时显示全部账目。
## 工程目录
```
├──entry/src/main/ets
│ ├──common
│ │ └──CommonConstants.ets // 常量集合
│ ├──components
│ │ └──BillDialog.ets // 账单弹窗组件
│ ├──entryability
│ │ └──EntryAbility.ets // 入口文件
│ ├──pages
│ │ └──BillHomePage.ets // 账单首页
│ ├──utils
│ │ └──RdbManager.ets // 关系型数据库管理类
│ └──viewmodel
│ └──BillViewModel.ets // 账单model
└──entry/src/main/resources // 资源文件
```
## 具体实现
1. 应用首次启动时,调用[requestPermissionsFromUser()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-abilityaccessctrl#requestpermissionsfromuser9)方法动态弹窗获取授权。
2. 创建关系型数据库,通过[relationalStore.getRdbStore()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-data-relationalstore-f#relationalstoregetrdbstore)创建关系型数据库,并通过[setDistributedTables()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-data-relationalstore-rdbstore#setdistributedtables)方法设置分布式数据库表。
3. 调用[on('dataChange')](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-data-relationalstore-rdbstore#ondatachange)接口订阅组网内其他设备的数据变化,并注册数据变化回调函数。
4. 封装操作数据库的增([insert()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-data-rdb#insert-1))、删([delete()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-data-rdb#delete-1))、改([update()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-data-rdb#update-1))、查([query()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-data-rdb#query-1))四个方法。
5. 调用同步数据的接口[sync()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-data-relationalstore-rdbstore#sync-1)推送当前设备数据变化至组网内其他设备。
6. 获取到变化的数据列表,更新本地数据。
## 相关权限
* ohos.permission.DISTRIBUTED_DATASYNC:允许不同设备间的数据交换。
## 约束与限制
1. 本示例仅支持标准系统上运行,支持设备:华为手机。
2. HarmonyOS系统:HarmonyOS 5.1.1 Release及以上。
3. DevEco Studio版本:DevEco Studio 5.1.1 Release及以上。
4. HarmonyOS SDK版本:HarmonyOS 5.1.1 Release SDK及以上。
5. 双端设备需要登录同一华为账号,建议打开查找设备功能。
6. 双端设备需要打开Wi-Fi和蓝牙开关,条件允许时最好连接同一局域网。
7. 双端设备都需要有该应用。