ToB企服应用市场:ToB评测及商务社交产业平台

标题: 鸿蒙(HarmonyOS)应用开发实战——数据库版本升级案例 [打印本页]

作者: 九天猎人    时间: 2024-11-19 06:03
标题: 鸿蒙(HarmonyOS)应用开发实战——数据库版本升级案例
往期推文全新看点


介绍

本示例介绍使用关系型数据库的接口来进行数据库起落级场景实现
效果预览图


使用说明
实现思绪

数据库版本升级有两种方案
方案一:直接升级,必要实现各版本到目标版本的实现逻辑,优点在于性能好,缺点是逻辑复杂且较难维护。
方案二:一步一步升级到最新版本,只必要实现紧邻版本的升级逻辑,优点在于逻辑简单,便于维护,缺点在于比方案一性能差。
在本示例中两种方案都有体现,此中从V1->V2->V3用的方案二,从V1->V3使用的方案一,具体实现步调如下:
  1. // 开启事务
  2. dbUtils.beginTransaction();
  3. // 获取当前数据库版本
  4. const oldVersion: number = dbUtils.getStoreVersion();
  5. // 将旧表改为临时表
  6. await dbUtils.updateTableName(Constants.STUDENT_TABLE, Constants.STUDENT_TABLE + oldVersion);
  7. // 创建新表
  8. const newTableColumnTypeMap: string[][] = CommonUtils.getTableColumnTypeMapByVersion(targetVersion);
  9. await dbUtils.createTable(Constants.STUDENT_TABLE, newTableColumnTypeMap);
  10. dbUtils.commit();
  11. // 自定义迁移逻辑
  12. let lastId: number = -1;
  13. let flag: boolean = false;
  14. await this.migrate(lastId, oldVersion, targetVersion, flag);
  15. // 删除旧表
  16. await dbUtils.dropTable(Constants.STUDENT_TABLE + oldVersion, targetVersion);
复制代码
  1.   /**
  2. * TODO: 知识点: 新老版本字段转换逻辑(版本升级只需要实现这个方法即可)
  3. * @param resultSet 查询结果集
  4. * @param targetVersion 目标版本
  5. * @returns 目标版本格式数据
  6. */
  7. abstract transform(resultSet: relationalStore.ResultSet, targetVersion: number): ValuesBucket;
复制代码
  1. switch (currentVersion) {
  2.   case Constants.V1:
  3.     await this.v1DataService.onUpgrade(version);
  4.     break;
  5.   case Constants.V2:
  6.     await this.v2DataService.onUpgrade(version);
  7.     break;
  8.   default:
  9.     throw new Error('The database version to which you need to upgrade is incorrect');
  10. }
复制代码
高性能知识点

不涉及
工程布局&模块范例

  1. databaseupgrade                                        // har类型
  2. |---components
  3. |   |---CustomFormComponents.ets                       // 自定义表格组件         
  4. |---constants                                          
  5. |   |---Constants.ets                                  // 常量类
  6. |---service
  7. |   |---DataService.ets                                // 业务层-版本升级逻辑
  8. |---utils                                          
  9. |   |---CommonUtils.ets                                // 工具类
  10. |   |---DBUtils.ets                                    // 数据库操作封装
  11. |---view                                          
  12. |   |---DatabaseUpgrade.ets                            // 视图层-数据库版本升级案例交互界面
复制代码
最后

总是有很多小同伴反馈说:鸿蒙开发不知道学习哪些技术?不知道必要重点掌握哪些鸿蒙开发知识点? 为了解决大家这些学习烦恼。在这准备了一份很实用的鸿蒙全栈开发学习路线与学习文档给大家用来跟着学习。
针对一些列因素,整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线,包含了鸿蒙开发必掌握的核心知识要点,内容有(OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony驱动开发、体系定制移植……等)技术知识点。

《鸿蒙 (Harmony OS)开发学习手册》(共计892页):https://gitcode.com/HarmonyOS_MN/733GH/overview

如何快速入门?

1.基本概念
2.构建第一个ArkTS应用
3.……

鸿蒙开发面试真题(含参考答案):


《OpenHarmony源码剖析》:



OpenHarmony 设备开发学习手册:https://gitcode.com/HarmonyOS_MN/733GH/overview



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4