Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Flutter开发 - 数据持久化

Flutter开发 - 数据持久化

作者头像
用户1483438
发布于 2022-03-28 02:37:35
发布于 2022-03-28 02:37:35
1.7K0
举报
文章被收录于专栏:大数据共享大数据共享

数据持久化的应用场景有很多。比如,用户的账号登录信息需要保存,用于每次与 Web 服务验证身份;又比如,下载后的图片需要缓存,避免每次都要重新加载,浪费用户流量。

由于 Flutter 仅接管了渲染层,真正涉及到存储等操作系统底层行为时,还需要依托于原生 AndroidiOS,因此与原生开发类似的,根据需要持久化数据的大小和方式不同,Flutter 提供了三种数据持久化方法,即文件、SharedPreferences 与数据库。接下来,就详细讲述这三种方式。

1、shared_preferences插件可用于此目的。 共享偏好设置插件包装iOS上的NSUserDefaults和Android上的SharedPreferences,为简单数据提供持久存储。

2、文件是存储在某种介质(比如磁盘)上指定路径的、具有文件名的一组有序信息的集合。

2.1、Flutter 提供了两种文件存储的目录,即临时(Temporary)目录文档(Documents) 目录:

临时目录是操作系统可以随时清除的目录,通常被用来存放一些不重要的临时缓存数据。 这个目录在 iOS 上对应着 NSTemporaryDirectory 返回的值,而在 Android 上则对应着 getCacheDir 返回的值。

文档目录则是只有在删除应用程序时才会被清除的目录,通常被用来存放应用产生的重要数据文件。在 iOS 上,这个目录对应着 NSDocumentDirectory,而在 Android 上则对 应着 AppData 目录。

3、使用Sqflite轻量数据库

SharedPrefernces 的使用固然方便,但这种方式只适用于持久化少量数据的场景,我们并不能用它来存储大量数据,比如文件内容(文件路径是可以的)。

如果我们需要持久化大量格式化后的数据,并且这些数据还会以较高的频率更新,为了考虑进一步的扩展性,我们通常会选用 sqlite 数据库来应对这样的场景。与文件和 SharedPreferences 相比,数据库在数据读写上可以提供更快、更灵活的解决方案。

SQLite 简介

本教程帮助您了解什么是 SQLite,它与 SQL 之间的不同,为什么需要它,以及它的应用程序数据库处理方式。

SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite是一个增长最快的数据库引擎,这是在普及方面的增长,与它的尺寸大小无关。SQLite 源代码不受版权限制。

什么是 SQLite?

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。

就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。

为什么要用 SQLite?

不需要一个单独的服务器进程或操作的系统(无服务器的)。

SQLite 不需要配置,这意味着不需要安装或管理。

一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。

SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。

SQLite 是自给自足的,这意味着不需要任何外部的依赖。

SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。

SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。

SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API

SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。

sqlite的介绍链接

https://www.runoob.com/sqlite/sqlite-intro.html

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SQlite三问
感冒了,可太难受了,感觉像是行尸走肉。这两天应该全国都在变冷吧,大家一定要注意身体啊。少熬夜了,我感觉我就是熬夜导致免疫力下降了。
码上积木
2020/12/11
1.2K0
SQLite 简介
本教程帮助您了解什么是SQLite,它与SQL之间的不同,为什么需要它,以及它的应用程序数据库处理方式。
子润先生
2021/07/02
1.9K0
Android SQLite基本用法(极简)
第一句代码中,创建Activity时会自动生成。在Activity中创建数据库,这里我们给数据库起名为“info.db”,数据库版本号为1,代码如下:
奶油话梅糖
2025/03/03
1160
Android SQLite基本用法(极简)
Flutter 应用数据持久化指南
数据持久化是指将应用程序中的数据保存在持久存储介质(如硬盘、数据库等)中的过程。在计算机科学领域,持久化数据是指数据在程序退出或系统关机后仍然存在的能力。这种持久性使得数据可以在不同的应用程序运行周期之间保持不变,以便稍后进行检索、处理和使用。
繁依Fanyi
2024/04/05
6220
Python操作SQLLite(基本操作
SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。
py3study
2020/01/16
1.8K0
老司机出品——数据持久化之基于FMDB的ORM数据库设计
这次呢,我们来说说iOS中数据持久化的几种方案。说到iOS中的数据存储,无非有4中方式:
老司机Wicky
2018/08/22
1.2K0
老司机出品——数据持久化之基于FMDB的ORM数据库设计
Android之SQLite使用
SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。
李小白是一只喵
2021/12/06
6410
Android之SQLite使用
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
EasySQLite是一个七天.NET 8操作SQLite入门到实战详细教程(包含选型、开发、发布、部署)!
追逐时光者
2024/08/12
1770
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
SQLite安装与使用图文详解
SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。
Harry技术
2025/01/14
5570
SQLite安装与使用图文详解
【Flutter】简单数据持久化
保存数据到本地磁盘是应用程序常用功能之一,比如保存用户登录信息、用户配置信息等。而保存这些信息通常使用 「shared_preferences」,它保存数据的形式为 Key-Value(键值对),支持 Android 和 iOS。shared_preferences 是一个第三方插件,在 Android 中使用 SharedPreferences,在 iOS中使用 NSUserDefaults。
老孟Flutter
2021/09/27
9550
Flutter 入门指北之数据持久化
博客:https://www.jianshu.com/p/97c2dbcac3af
陈宇明
2020/12/16
1.5K0
【轻量级NoSQL数据库与PythonWeb-Flask框架组合使用】1-SQLite3介绍及安装教程
SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。
天道Vax的时间宝藏
2021/08/11
1.1K0
学习SQLite之路(一)
  工作快一年了,接触的东西不是很多,学到的东西也不多。无意中看到公司的代码有一点关于sqlite3的(不是我这一层负责的代码),于是乎就学学试试。  参考: http://www.runoob.com/sqlite/sqlite-tutorial.html  20160612 更新 1,什么是SQLite? SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库。 2.SQLite的优势 不需要一个单独的服务器进程或操作的系统(无服务器
xcywt
2018/01/11
1.9K0
学习SQLite之路(一)
Android 数据库开发(一)SQLite3概述
前言 SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目,设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在Android、iOS等移动操作系统中的数据库实现也是使用的SQLite3。对于Android开发者来说数据库并不算很好维护,所以深入了解SQLite数据库也变得很有必要,本文就来先介绍下SQLite3。 1.SQLite3简单介绍 SQLite并不是一个独立的进程,而是作为
用户1269200
2018/02/01
1K0
Android 数据库开发(一)SQLite3概述
python3使用json、pickle和sqlite3持久化存储字典对象
在各种python的项目中,我们时常要持久化的在系统中存储各式各样的python的数据结构,常用的比如字典等。尤其是在云服务类型中的python项目中,要持久化或者临时的在缓存中储存一些用户认证信息和日志信息等,最典型的比如在数据库中存储用户的token信息。在本文中我们将针对三种类型的python持久化存储方案进行介绍,分别是json、pickle和python自带的数据库sqlite3。
DechinPhy
2021/05/21
3.4K0
【Android从零单排系列四十三】《浅谈Android数据持久化》
小伙伴们,在前面的几篇文章中,我们谈到了Android开发中的几种数据存储方式,本文我们总结介绍下Android数据持久化的一些内容。
再见孙悟空_
2023/07/17
6380
Flutter 数据持久化存储之Hive库
以上的这些我们都不使用,这里要使用的是Hive库,地址是 Hive,感兴趣的可以自行了解,本文运行效果图。
晨曦_LLW
2024/05/25
4810
Flutter 数据持久化存储之Hive库
深入了解SQLite:轻量级数据库引擎的力量
在当今数字化的世界中,数据的存储和管理是任何应用程序成功运行的关键。数据库系统在这方面扮演着重要的角色,而SQLite是一款备受推崇的轻量级数据库引擎。本文将深入探讨SQLite,从其起源、特点到应用领域。
很酷的站长
2023/12/23
7800
深入了解SQLite:轻量级数据库引擎的力量
Android SQLite数据库基本用法详解
public class DBHelper extends SQLiteOpenHelper{
奶油话梅糖
2021/03/16
2.2K0
数据持久化
数据持久化是将内存中的数据转换为存储模型,以及存储模型转换为内存中的数据模型的统称。数据模型可以是任何数据结构或对象模型。存储模型可以使关系模型、XML、二进制流等。cmp和Hibernate只是对象模型到关系模型之间转换的不同实现。
全栈程序员站长
2022/06/30
3670
相关推荐
SQlite三问
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档