[英]Best way to store objects with images locally on disk in Flutter?
[英]Flutter : best way to store maps locally?
在本地存储数据的最佳方式是什么。 假设我正在创建一个存储交易的应用程序,我需要保存 id(因为它们可能是许多同名的交易)、标题、金额和时间。 我可以通过共享偏好来做到这一点,还是有其他方法可以做到这一点? 谢谢你的回答。
您可能会喜欢Hive Hive 是一个功能强大的数据库,如果您正在寻找出色的性能,这就是它
Shared Preference 让您可以轻松地在几行代码中读取和写入键值对。 但是共享偏好并不是您保留复杂数据的解决方案。 您应该将这些数据保存在数据库中。
您有两种主要类型的选择:
SQflite是 Flutter 的 SQLite 实现。 它使您可以完全控制您的数据库、查询和关系。
优点
完全控制数据库。 一个非常高效的 SQLite 数据库,适用于您的应用程序(假设您已经具备 SQLite 知识)。
缺点
手动写出所有查询可能需要很多时间。
从数据库返回的数据从一开始就不是强类型的。
在设备上处理迁移可能很困难(例如,当模式在版本更新之间发生变化时)。
它不支持网络。
Hive——离线 NoSQL 存储
Hive 是 Flutter 开发人员非常快速的 NoSQL 存储选项。 它最大的卖点是完全原生于 Dart。
Hive 允许您将数据存储为 HiveObject,这也允许对象之间的某些关系。 它将对象存储在一个盒子中,但您可以为它们生成 TypeAdapter。
创建一个盒子相当简单:
var box = await Hive.openBox('testBox');
阅读和写作同样简单:
import 'package:hive/hive.dart';
void main() async {
var box = await Hive.openBox('testBox');
box.put('name', 'David');
print('Name: ${box.get('name')}');
}
如果从 hive 包自述文件页面获取此基准:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.