数据持久化
所谓数据持久化,即数据的长期存储。很多时候,我们需要将一些数据保存在本地,当App重启后,仍然可以读取和使用。
通常来说,移动App的持久化有三种实现方式
- 使用文件读写
- 使用键值对工具
- 使用嵌入式数据库
读写文件
自己手动读写文件过于灵活,可能需要编写更多代码,且不利于维护。具体可参见本课程文件一节。
键值对框架
该方案简单直接,通常用于保存应用的配置信息。不建议用于保存关系型的数据。
在Flutter中,使用键值对来持久化的方案,需要使用一个shared_preferences的插件库。其实现原理是调用对应平台的原生接口实现键值对持久化。例如,iOS平台中使用的是NSUserDefaults、安卓平台是SharedPreferences等。
注意,使用时,首先需要在pubspec.yaml文件中配置依赖,具体用法可参见 shared_preferences 文档
嵌入式数据库
当我们需要储存复杂的,具有关系结构的数据时,需要使用数据库。在移动平台上,主要使用嵌入式数据库SQLite来实现需求。
总的来说,如果编写需要储存在本地设备上,并且需要查询大量数据的应用,应考虑使用数据库而不是本地文件或键值对存储。与其他持久化解决方案相比,数据库提供了更快的插入,更新和查询。
在Flutter中想要使用SQLite数据库,也需要使用一个插件库sqflite,参见 sqflite 文档
通常,有两种方式来使用sqflite
- 使用原始SQL语句操作
- 使用SQL helpers操作
关于SQLite数据库及其SQL语句的入门知识,请阅读我的博客 《Python小白的数据库入门》,希望深入探索SQLite用法的,推荐阅读《SQLite权威指南(第2版)》这本书。
公众号“编程之路从0到1”