暂无图片
暂无图片
7
暂无图片
暂无图片
暂无图片

鸿蒙数据库系列之关系型数据库

sususuki 2021-08-27
1334

前言

移动端开发,数据存储是非常重要的,鸿蒙也不例外,说到数据存储,首要的就是数据库了,数据库的存储机制是否完善,提供的功能是否简单方便,直接影响开发者的开发速度和性能。作为鸿蒙开发者,最近就深入学习了鸿蒙的数据库知识点,了解了存储机制并且尝试了使用,发现鸿蒙的数据库真的做到了应有尽有,操作还简单的地步。

概念

先来看看 鸿蒙的 关系型数据库(Relational Database,RDB) 概念。鸿蒙的RDB 是一种基于关系模型来管理数据的数据库。HarmonyOS关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查接口,也可以直接运行用户输入的SQL语句来满足复杂的场景需要。HarmonyOS提供的关系型数据库功能更加完善,查询效率更高。概念中一句话很重要,HarmonyOS提供的关系型数据库功能更加完善,查询效率更高。看到这里我当时是非常激动的,作为开发者难道不是最希望 使用的api在什么情况下都适用吗?下面看看鸿蒙数据库的运作机制,了解机制才能了解数据库开发的核心,也有利于扩展。

运作机制

HarmonyOS关系型数据库对外提供通用的操作接口,底层使用SQLite作为持久化存储引擎,支持SQLite具有的所有数据库特性,包括但不限于事务、索引、视图、触发器、外键、参数化查询和预编译SQL语句。关系型数据库运作机制:

image.png

看到上面的鸿蒙数据库的运行机制 不难发现,主要工作还是在framework层做的封装,然后调用JNI,使用的还是SQLite组件,不管 底层怎么做的开发,只要功能完善,体验到位,鸿蒙应用端直接使用不是很香吗?

约束与限制

1、数据库中连接池的最大数量是4个,用以管理用户的读写操作。连接池的数量是有限制的 ,最大时4个,不过4个已经足够使用了。
2、为保证数据的准确性,数据库同一时间只能支持一个写操作。同一时间支持一个写操作时非常重要的,为了防止数据存储的正确性,鸿蒙做了这一个限制,但是作为多年的移动端开发者,一般这种多操作或者大数据操作,都会使用多线程,异步线程,或者放在线程池中,这样就更完美了。
数据库操作DataAbility

鸿蒙在创建类的时候 有一个 DataAbility,不知道各位开发者使用过了没,其实这个就是为了数据库操作尔来的。添加步骤很简单:添加类的时候 选择Empty DataAbility即可。

一、 配置:

添加类后 会自动生成如下配置:

image.png

1、操作数据库需要权限信息

image.png

2、需要配置url,url很重要,在进行数据库表操作的时候 需要保持一致
二 、DataAbility操作内容

默认创建的DataAbility类会自动重写 数据库的增,删,改,查 几种操作的函数。可以看下面:

image.png
image.png
image.png
image.png

1、添加DataAbility 会自动重写四个接口函数,有关数据库的增,删,改,查。
2、该DataAbility在运行项目后会自行执行onStart 方法 进行数据库及其数据表的创建工作
3、通过RdbPredicates 数据库进行数据库关系的关联进行操作。
三 、数据库操作

这里的数据库操作 时开发需求做的数据库操作,可以通过自己的需求来开发数据库的调用操作,最终还是通过使用 DataAbility直接调用系统的数据库。

image.png
image.png
image.png
image.png

1、数据插入 使用 对象类 ValuesBucket
2、使用 DataAbilityPredicates 实例 进行数据查询的条件设置
到此有关数据库的关系型数据库操作 基本就完成了,是不是非常,非常简单,可以直接拿来主义 验证一下。

原创:老王丨鸿蒙

最后修改时间:2021-08-30 12:22:07
文章转载自sususuki,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论