flutter realm如何使用

“我在Flutter项目中尝试集成Realm数据库时遇到了一些问题。想请教大家:1) 如何在Flutter中正确安装和配置Realm?2) Realm的数据模型该如何定义,和普通Dart类有什么区别?3) 基本的CRUD操作代码示例是什么样的?4) 是否支持数据变更监听?如果有实际项目经验的朋友,希望能分享一些最佳实践和常见避坑指南。”

2 回复

Flutter中使用Realm数据库需安装realm包,通过定义数据模型类并继承RealmObject,使用Realm实例进行增删改查操作。支持实时查询和自动更新。

更多关于flutter realm如何使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


Flutter 中使用 Realm 数据库的步骤如下:

1. 添加依赖

pubspec.yaml 中添加:

dependencies:
  realm: ^[最新版本]

运行 flutter pub get

2. 创建数据模型

import 'package:realm/realm.dart';

part 'car.realm.dart' // 运行生成命令后会自动创建

@RealmModel()
class _Car {
  @PrimaryKey()
  late String id;
  
  late String name;
  late int year;
}

3. 生成模型代码

运行命令:

dart run realm generate

4. 基本操作示例

// 初始化 Realm
final config = Configuration.local([Car.schema]);
final realm = Realm(config);

// 写入数据
realm.write(() {
  realm.add(Car(ObjectId().toString(), 'Toyota', 2022));
});

// 查询数据
final cars = realm.all<Car>();
final toyotas = realm.query<Car>('name == "Toyota"');

// 更新数据
realm.write(() {
  car.year = 2023;
});

// 删除数据
realm.write(() {
  realm.delete(car);
});

// 关闭 Realm
realm.close();

5. 高级功能

  • 数据迁移:通过 Configuration 设置 schemaVersion
  • 数据监听:使用 RealmResults.changes 监听数据变化
  • 异步操作:在 isolate 中执行耗时操作

注意事项:

  1. 所有写操作必须在 realm.write() 事务中执行
  2. 记得在不需要时关闭 Realm 实例
  3. 主键字段需要使用 @PrimaryKey() 注解

建议查看官方文档获取最新 API 和详细示例。

回到顶部