写点什么

#HarmonyOS NEXT 体验官# 关系型数据库封装 DBHelper

作者:最新动态
  • 2025-12-05
    湖北
  • 本文字数:962 字

    阅读完需:约 3 分钟

踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!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)

用户头像

最新动态

关注

还未添加个人签名 2019-07-19 加入

还未添加个人简介

评论

发布
暂无评论
#HarmonyOS NEXT体验官# 关系型数据库封装DBHelper_最新动态_InfoQ写作社区