Flutter 开发系列(十):深入掌握本地存储与数据库操作
在 Flutter 中实现本地存储是构建应用的重要一环,尤其是在需要持久化用户数据、缓存信息、或应用设置的情况下。本篇将介绍如何在 Flutter 中使用 SQLite 和 shared_preferences
两种方式进行本地存储,涵盖适用场景、常用方法、以及具体代码示例,帮助开发者为应用数据选择合适的存储方案。
目录
- SQLite 与
shared_preferences
简介 - 使用
shared_preferences
进行简单数据存储- 存储用户偏好设置示例
- 使用 SQLite 实现复杂数据持久化
- 表设计与数据库操作示例
- 扩展:选择合适的存储方案
1. SQLite 与 shared_preferences
简介
shared_preferences
:用于存储轻量数据(如布尔值、字符串和整数),通常适用于用户设置和少量配置信息。- SQLite:适合复杂结构和较大数据量的持久化存储,支持增删改查和数据关系的管理。适合存储较多的用户数据,比如任务列表、笔记等。
2. 使用 shared_preferences
进行简单数据存储
shared_preferences
插件可以帮助在本地持久化简单数据,以下为基本的设置和使用流程:
安装 shared_preferences
插件
在 pubspec.yaml
文件中添加依赖:
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.0.15
存储和读取数据示例
在以下示例中,我们将存储和读取用户的登录状态和用户名。
import 'package:shared_preferences/shared_preferences.dart';
class PreferencesService {
// 保存登录状态
Future<void> saveLoginStatus(bool isLoggedIn) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setBool('isLoggedIn', isLoggedIn);
}
// 获取登录状态
Future<bool> getLoginStatus() async {
final prefs = await SharedPreferences.getInstance();
return prefs.getBool('isLoggedIn') ?? false;
}
// 保存用户名
Future<void