
跟老卫学HarmonyOS开发:ArkTS关系型数据库开发 原创
本节以一个“账本”为例,使用关系型数据库的相关接口实现了对账单的增、删、改、查操作。
为了演示该功能,创建一个名为“ArkTSRdb”的应用,源码见文末。
操作RdbStore
首先要获取一个RdbStore来操作关系型数据库。
在src/main/ets
目录下创建名为“common/database”目录,用于存放常用的数据库相关的类。在该common/database
目录创建工具类Rdb,代码如下:
数据库所需要的配置存在以下common/constants/CommonConstants.ets
文件中:
为了对数据进行增、删、改、查操作,我们要封装对应接口。关系型数据库接口提供的增、删、改、查方法均有callback和Promise两种异步回调方式,本例子使用了callback异步回调。代码如下:
账目信息的表示
由于需要记录账目的类型(收入/支出)、具体类别和金额,因此我们需要创建一张存储账目信息的表,SQL脚本下:
accountTable表的各字段含义如下:
- id:主键。
- accountType:账目类型。0表示支出;1表示收入。
- typeText:账目的具体类别。
- amount:账目金额。
在src/main/ets
目录下创建名为“viewmodel”目录,并在该目录下创建与上述脚本对应的类AccountData,代码如下:
操作账目信息表
创建针对账目信息表的操作类common/database/tables/AccountTable.ets
。AccountTable类封装了增、删、改、查接口。代码如下:
设计界面
为了简化程序,突出核心逻辑,我们的界面设计的非常简单,只是一个Text组件和四个Button组件。四个Button组件用于触发增、删、改、查操作,而Text组件用于展示每次操作后的结果。修改Index代码如下:
上述代码,在aboutToAppear生命周期阶段,初始化了数据库。点击“新增”会将预设好的数据“{ id: 1, accountType: 0, typeText: '苹果', amount: 0 }
”写入到数据库。点击“修改”会将预设好的“{ id: 1, accountType: 1, typeText: '栗子', amount: 1 }
”的数据更新到数据库。点击“删除”则会将预设好的“{ id: 1, accountType: 1, typeText: '栗子', amount: 1 }
”的数据从数据库删除。
运行
运行应用显示的界面效果如下图10-3所示。
当用户点击“增加”后再点击“查询”时,界面如下图10-4所示,证明数据已经成功写入数据库。
当用户点击“修改”后再点击“查询”时,界面如下图10-5所示,证明数据已经被修改并更新回数据库。
当用户点击“删除”后再点击“查询”时,界面如下图10-6所示,证明数据已经从数据库删除。
源码
- 《跟老卫学HarmonyOS开发》 开源免费教程,https://github.com/waylau/harmonyos-tutorial
