踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!https://developer.huawei.com/consumer/cn/training/dev-cert-detail/101666948302721398?ha_source=hmosclass-csdn&ha_sourceId=89000445

背景

在实现单机应用时,用户所有的操作数据都需要保存在本地。官方提供了关系型数据库基于SQLite组件,适用于包含复杂关系数据的场景。

并且提供了大量的增删改查方法,不过在使用过程中还是会出现比较多的硬编码和不方便操作的情况,比如:

· 创建数据表:需要手写SQL语句

· 添加数据时,需要手写类型名称和数值

· 查询数据获取比较麻烦

因此,在@kit.ArkData的基础上进行使用的封装,方便我们在调用关系型数据库进行增删改查。

DBHelper

架构

DBServer

作用:数据操作服务类。初始化数据库方法、创建数据表名、数据库数据的增删改查入口。

Models->BaseEntity

作用:为了统一数据库实体类的继承

DBCommon->ColumnType

作用:定义数据表中每一项的数据类型

DBCommon->DBTable

作用:数据表结构缓存类,里面定义了表数据结构和列数据结构。并且缓存类封装相对应的方法去操作对表数据结构进行增删改查。

DBCommon->DeletePredicates

作用:在RdbPredicates基础上同步封装的方法,并提供在方法拼接后直接删除方法。

DBCommon->QueryPredicates

作用:对RdbPredicates进行封装,实现搜索时候的谓词添加,并提供自定义查询方法

DBCommon->UpdatePredicates

作用:对RdbPredicates进行封装,实现搜索时候的谓词添加,并提供自定义更新方法。

Annotations->Columns

作用:属性的装饰器。用来定义数据表实体中每一列的数据结构

Annotations->Table

作用:class装饰器。用来定义数据表名字,可以自定义名字,也可以默认当前class名字。

实例使用

实现数据库初始化、数据库增删改查操作

EntryAbility

在EntryAbility中的OnCreate中进行初始化

定义数据库表实体类

· @Table():定义当前class为数据库表实体类。默认数据库表名为class名字

· @Columns():定义数据表列数据。默认列数据名为属性名字

页面使用

总结

上面的代码是全开源的,可以通过源码下载 下载代码来自行改装,上面只是初步实现了增删改查,后续还会有持续的更新操作,比如外键适配等操作,如果有自定义需求或者bug也欢迎提Issues。(转载自51CTO,作者:奥尼5354)

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐