Flutter教程Realm本地数据库使用
如何在Flutter中集成Realm本地数据库?有没有完整的配置步骤和依赖添加示例?
使用Realm时遇到Schema模型定义问题,官方文档不太清晰,能否提供一个简单的Dart模型定义范例?
Realm的查询操作和常规SQLite有什么区别?比如如何实现条件查询、排序和分页?
在多线程环境下操作Realm需要注意什么?是否支持异步读写?
Realm数据库文件能否加密?如何实现敏感数据的本地安全存储?
升级App时需要迁移Realm数据库结构,有没有可靠的迁移方案或工具推荐?
首先在pubspec.yaml中添加realm依赖:
dependencies:
realm: ^x.x.x
接着运行flutter pub get
安装。
使用时先创建Realm配置对象:
final config = Configuration.local([YourSchema]);
然后打开Realm实例:
final realm = Realm(config);
定义数据模型Schema:
@RealmModel()
class _YourSchema {
@PrimaryKey()
late ObjectId id;
late String name;
}
插入数据:
realm.write(() {
realm.create<_YourSchema>('YourSchema', _YourSchema()..name = 'Test');
});
查询数据:
final results = realm.all<_YourSchema>();
for (var item in results) {
print(item.name);
}
更新数据:
realm.write(() {
final obj = realm.find<_YourSchema>(ObjectId.fromHexString('id'));
if (obj != null) {
obj.name = 'Updated Name';
}
});
删除数据:
realm.write(() {
final obj = realm.find<_YourSchema>(ObjectId.fromHexString('id'));
if (obj != null) {
realm.delete(obj);
}
});
最后别忘了关闭Realm实例:
realm.close();
更多关于Flutter教程Realm本地数据库使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中使用Realm本地数据库,首先需要添加依赖realm_flutter
。在pubspec.yaml
中加入:
dependencies:
realm_flutter: ^<最新版本>
运行flutter pub get
。
初始化Realm:
import 'package:realm/realm.dart';
final config = Configuration.local([YourSchema.schema]);
final realm = Realm(config);
创建数据模型时,使用@RealmModel()
注解:
@RealmModel()
class _YourSchema {
@PrimaryKey()
late String id;
late String name;
}
增删改查操作如下:
- 添加数据:
realm.write(() => realm.add(YourSchema({'id': '1', 'name': 'John'})));
- 查询数据:
final results = realm.all<YourSchema>();
- 更新数据:
realm.write(() => results[0].name = 'Doe');
- 删除数据:
realm.write(() => realm.delete(results));
记得处理异常并关闭Realm实例。Realm提供高效的数据同步和灵活的查询API,适合中小型应用。
Flutter中使用Realm本地数据库
Realm是一个高性能的移动端数据库解决方案,适合Flutter应用作为本地数据库使用。以下是基本使用指南:
1. 添加依赖
在pubspec.yaml
中添加:
dependencies:
realm: ^[最新版本]
2. 定义数据模型
import 'package:realm/realm.dart';
part 'car.realm.dart';
@RealmModel()
class _Car {
@PrimaryKey()
late String id;
late String make;
late String model;
int? miles;
}
运行构建命令生成模型代码:
flutter pub run build_runner build
3. 初始化Realm
final config = Configuration.local([Car.schema]);
final realm = Realm(config);
4. 基本CRUD操作
创建(Create):
realm.write(() {
realm.add(Car(ObjectId(), 'Toyota', 'Camry', miles: 1000));
});
查询(Read):
final cars = realm.all<Car>();
final toyotas = realm.query<Car>('make == "Toyota"');
更新(Update):
realm.write(() {
car.miles = 1500;
});
删除(Delete):
realm.write(() {
realm.delete(car);
});
5. 关闭Realm
realm.close();
高级功能
- 支持数据变更监听
- 支持数据迁移
- 支持加密
- 支持同步(需要Realm云服务)
建议查看官方文档获取更详细的信息和最佳实践。