前言:
在app开发过程中,关系型数据库基本都会用到,纯血鸿蒙的关系型数据库底层也是sqllite,只不过纯血鸿蒙用的是ArtTS语法写的。本章就讲解下如何用ArtTS语法来进行关系型数据库的创建与升级。
一、基本使用方法
主要分3个步骤
(1)定义数据库的配置
(2)获取数据库的实例对象rdbStore
(3)根据数据库版本号来执行不同的sql
securityLevel配置:
鸿蒙系统对于应用数据的存放分为了el1~el5目录,安全级别逐次提高,如果不涉及高敏感数据可以存在el1和el2目录,也就是securityLevel.S1和securityLevel.S2的配置。如果涉及高敏感数据,可以放在el3目录或者el4目录,这两个目录的区别就是在锁屏场景下,el3可以创建文件,但不可以读取文件,锁屏场景会读取失败。而el4目录是既不可以创建也不能读取。el1和el2目录锁屏场景下应用可以正常读取。
encrypt配置:
该配置很直观就是是否给数据库加密,如果是true,相当于整个数据库文件是加密状态。如果数据库中存在敏感个人数据,可以设置为true。但是不影响使用接口获取数据。无论加密还是不加密,接口访问数据的方式都一样,都是通过rdbStore对象访问。只不过数据库文件无法用一些sqllite工具直接查看。如果想用sqllite工具查看数据库文件,需要将endrypt设置为false才行。
二、更优雅的实现数据的升级
考虑到随着app版本迭代,数据库升级可能会越来越多,版本的if判断也会越来越多,不利于代码的维护和扩展,可以将升级操作抽取为多态类。
完整的实现如下:
定义一个IRdbUpgrade接口,每次数据库需要升级时,新增一个实现类,无需修改主流程代码。
主流程代码:
IRdbUpgrade接口:
版本2的实现类:
版本3的实现类:
【原创声明】
本文为本人原创文章,首次发表于【51CTO作者zhujian8263 】,原文链接:[https://blog.51cto.com/u_11966021/13431509]。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。