多起村干部被灭门案,需要反思了!

高铁打人者身份被曝光,人脉资源碾压普通人!却遇到了硬茬

OPPO芯片业务解散不一定是坏事

明确了!任期届满后,他不再寻求连任!

去泰国看了一场“成人秀”,画面尴尬到让人窒息.....

生成图片,分享到微信朋友圈

自由微信安卓APP发布,立即下载! | 提交文章网址
查看原文

flutter简单易用高效开源的本地数据Isar | 第131期

lyu无忆 青衣极客 2022-11-13

       网友推荐了一款flutter数据库Isar,起初我还不以为意,试用之后难逃“真香定律”。正如其官网上介绍的,为flutter量身定做,使用起来非常简单,就这一条也能让人乐意花点时间一探究竟。 Isar同时支持移动端、桌面端和web端全平台,完美解决多平台应用开发者的顾虑。 虽然我没有精细地定量测量“增删改查”的效率,但在App中操作数万条数据时仍然体验顺畅,也就是说一般10万量级的数据都是够用的。 而且数据库工程是开源的,即使不去阅读其核心部分的rust代码,也能用着放心。

01

       Isar官方提供了丰富的文档,其中 quickstart 包含了基本的使用步骤和常用操作。数据表的定义是通过在dart类上添加装饰器实现的,类的成员就构成了字段。手动编写标注class的部分,另一部分代码由工具生成。接下来就可以正常使用了,跟其他的数据库一样,首先需要打开数据库实例,然后以异步的方式执行增删改查操作。

02

       外键是建立数据表之间链接关系的,在Isar中使用 IsarLink 实现。包括单个值的链接、多个值的链接,以及反向的链接。使用IsarLink就可以描述具有复杂关系的数据表。

03

        Isar提供了丰富的查询操作,不仅能满足复杂的业务需求,而且实现极其简单,再也不会一谈到数据库就头大。还有数据库必备的“事务”功能,一方面可以提升批量写入的效率,另一方面可以用于实现“原子性”的需求。 所谓“原子性”是指一个必须完全成功或者完全失败,而不允许出现部分成功或部分失败的操作集合。

04

       在实际的生产开发中,常常需要兼容旧版本数据库。比如用户正在使用的app,已经产生了一些数据,升级到新版本之后,还需要复用之前的数据,但新添加的字段在旧版本中不存在,默认为null。这时就需要进行数据迁移。数据迁移是最容易出问题的,而且一出问题基本就是大问题。 所幸,Isar官方提供了可供参考的解决方案,操作起来也是非常简单。

05

       更多关于Isar数据库相关的细节,可以查看github上的开源项目,也可以查看官方网站上的介绍。

06

       试用之后的总体感受非常不错。完全不需要自己编写SQL语句,代码的一致性很高,是一个很好的本地数据库。


文章有问题?点此查看未经处理的缓存