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

前言

软件要求

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值