【鸿蒙开发实战】鸿蒙中如何通过关系型数据库实现数据持久化

前言

软件要求

DevEco Studio 版本:构建版本:5.0.3.100

API Version : 11 Release

官方参考文档:HarmonyOS NEXT

利用关系型数据库SQLite实现笔记数据持久化功能

关系型数据库基于SQLite组件,适用于存储包含复杂关系数据的场景,比如一个班级的学生信息,需要包括姓名、学号、各科成绩等,又或者公司的雇员信息,需要包括姓名、工号、职位等,由于数据之间有较强的对应关系,复杂程度比键值型数据更高,此时需要使用关系型数据库来持久化保存数据。

使用SQLite为App打造笔记功能

两个基本概念:

谓词:数据库中用来代表数据实体的性质、特征或者数据实体之间关系的词项,主要用来定义数据库的操作条件。
结果集:指用户查询之后的结果集合,可以对数据进行访问。结果集提供了灵活的数据访问方式,可以更方便地拿到用户想要的数据。

使用Stage模型,官方Stage模型示例,如下图:
在这里插入图片描述

页面结构

├── database  // 数据库
│    └── PrivacyNoteDB.ets 
├── Privacy  // 隐私空间
│   ├── PrivacySettingsPage.ets
│   ├── Note
│   │   └── NoteIndexPage.ets       // 隐私笔记主页
│   │   ├── NoteFormPage.ets        // 隐私笔记表单页

在模拟器中App的笔记入口页面,如下图:
在这里插入图片描述

数据库封装

使用关系型数据库实现数据持久化,需要获取一个RdbStore
封装代码如下:

export interface PrivacyNoteDBInfo extends ValuesBucket {

  id: number | null 

  title: string

  content: string

  date_added: number

}

class PrivacyNoteDB {

  private store: relationalStore.RdbStore | null = null

  private tableName = 'privacy_note'

  private sqlCreate = `CREATE TABLE IF NOT EXISTS ${this.tableName} (

        id INTEGER PRIMARY KEY AUTOINCREMENT,

        title TEXT NOT NULL,

        content TEXT NOT NULL,

        date_added INTEGER NOT NULL

      )`

  async getStoreInstance() {

    if (this.store) { return this.stor
<think>嗯,用户现在问的是关于鸿蒙开发的教程。之前他们问过兼职平台的开发,现在转向具体的开发技术,可能用户本身是个开发者,或者有意向进入鸿蒙开发领域。我需要先确定用户的需求层次,是初学者想入门,还是有经验的开发者需要进阶资料? 首先,我应该介绍鸿蒙系统的基本情况,包括它的特点和架构,这样用户能有一个全面的了解。然后分模块讲解开发环境搭建、核心技术和开发步骤,这部分需要结构清晰,方便用户按步骤学习。可能需要提到开发工具DevEco Studio,还有ArkTS语言,因为这是鸿蒙开发的主要语言。 用户可能对实际应用案例感兴趣,所以举几个例子,比如健康监测应用或智能家居控制,这样能帮助用户理解鸿蒙的实际应用场景。另外,学习资源部分很重要,用户可能需要官方文档、社区论坛和在线课程的推荐,这里要确保链接和资源是最新的,避免过时信息。 还要注意用户可能的疑问点,比如鸿蒙和安卓的区别,或者是否需要特定的硬件设备进行开发。可能需要准备这些常见问题的解答,但用户当前的问题没有明确提到,所以暂时放在常见问题部分。 另外,用户之前询问过兼职平台开发,可能现在是在扩展自己的技能,寻找新的开发领域。因此,强调鸿蒙的跨设备协同和分布式能力,以及市场前景,可以增加用户的学习动力。同时,结合之前的回答风格,保持技术细节和实例代码,比如提供布局代码示例和状态管理代码,这样更符合用户的接受习惯。 需要检查是否有遗漏的重要部分,比如开发环境的配置步骤是否详细,或者是否有必要提到鸿蒙的最新版本更新。另外,确保术语准确,比如ArkUI和ArkTS的正确使用,避免混淆。 最后,总结部分要鼓励用户从基础开始,逐步深入,并提供持续学习的资源。整个回答需要保持结构清晰,层次分明,让用户能够循序渐进地学习鸿蒙开发。</think>以下是关于鸿蒙HarmonyOS开发的系统性教程指南,包含技术要点和学习路径: ### 一、鸿蒙系统核心特性 1. **分布式架构** - 跨设备协同开发(手机/平板/智能家居/车载系统) - 软总线技术实现设备间通信延迟 <10ms $$ \text{时延公式}:T = \frac{D}{B} + P $$ (D: 数据量, B: 带宽, P: 协议处理时间) 2. **原子化服务** - FA(Feature Ability)基础功能单元 - PA(Particle Ability)后台服务单元 3. **确定性时延引擎** 任务优先级调度算法示例: ```typescript // ArkTS代码片段 taskQueue.sort((a, b) => { return (a.priority * 0.6 + a.deadline * 0.4) - (b.priority * 0.6 + b.deadline * 0.4); }); ``` ### 二、开发环境搭建 1. **工具链配置** - DevEco Studio 3.1+(官方IDE) - SDK包含API 9+版本 - 本地模拟器/远程真机调试 2. **项目结构解析** ``` MyHarmonyApp/ ├── entry/src/main/ │ ├── resources/ # 资源文件 │ ├── ets/ # ArkTS代码 │ │ ├── pages/ # 页面组件 │ │ └── model/ # 数据模型 │ └── config.json # 应用配置 ``` ### 三、核心技术模块 1. **ArkUI开发框架** - 声明式UI范例: ```typescript @Entry @Component struct HelloPage { @State message: string = "Hello Harmony" build() { Column() { Text(this.message) .fontSize(30) Button('Click Me') .onClick(() => { this.message = "Button Clicked!" }) } } } ``` 2. **状态管理** - @State:组件内状态 - @Prop:父子组件单向同步 - @Link:双向数据绑定 3. **分布式能力开发** ```typescript // 设备发现 let deviceManager = createLocalDeviceManager(); deviceManager.on('deviceOnline', (deviceInfo) => { console.log(`发现设备:${deviceInfo.deviceName}`); }); ``` ### 四、实战开发步骤 1. **创建首个应用** - 使用`Empty Ability`模板 - 配置`config.json`中的设备类型: ```json "deviceTypes": ["phone", "tablet", "tv"] ``` 2. **网络请求示例** ```typescript import http from '@ohos.net.http'; let request = http.createHttp(); request.request("https://api.example.com/data", (err, data) => { if (!err) { console.log(JSON.parse(data.result)); } }); ``` 3. **数据持久化** - 轻量级存储(Preferences) - 关系型数据库(RDB) - 分布式数据管理(Data Ability) ### 五、调试与优化 1. **性能分析工具** - HiTrace性能跟踪链 - SmartPerf分析内存泄漏 2. **包体积控制** $$ \text{HAP大小} = \text{代码} + \text{资源} + \text{库文件} - \text{压缩优化} $$ 推荐使用`ProGuard`进行代码混淆 ### 六、学习资源推荐 1. **官方渠道** - [HarmonyOS开发者官网](https://developer.harmonyos.com) - Gitee开源代码仓(示例项目) 2. **实践案例** - 健康监测应用(传感器调用) - 多设备视频流转(分布式调度) - 智能家居控制面板(原子化服务) ### 七、常见问题 1. **Q:鸿蒙与Android开发有何差异?** A:鸿蒙采用分布式架构,开发语言以ArkTS为主,UI框架为声明式编程 2. **Q:是否需要鸿蒙设备进行开发?** A:可使用官方模拟器,但建议配备HiSilicon开发板(如Hi3861)测试硬件特性 **学习建议**:从基础组件开发入手,逐步掌握分布式能力,关注[OpenHarmony](https://www.openharmony.cn)开源社区动态,参与代码贡献可加速技术成长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值