flutter如何使用floor数据库
我在Flutter项目中需要使用floor数据库,但不太清楚具体怎么操作。能请教一下如何正确集成和使用floor吗?包括数据库的创建、表的定义,以及基本的增删改查操作该怎么实现?最好能提供一些简单的代码示例。
2 回复
在Flutter中使用Floor数据库的步骤:
更多关于flutter如何使用floor数据库的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在 Flutter 中使用 Floor 数据库,需要以下步骤:
1. 添加依赖
在 pubspec.yaml 中添加:
dependencies:
floor: ^1.4.0
sqflite: ^2.0.0
dev_dependencies:
floor_generator: ^1.4.0
build_runner: ^2.1.0
2. 创建实体类
使用注解定义数据表:
import 'package:floor/floor.dart';
@Entity(tableName: 'person')
class Person {
@PrimaryKey(autoGenerate: true)
final int? id;
final String name;
Person(this.id, this.name);
}
3. 创建 DAO (数据访问对象)
@dao
abstract class PersonDao {
@Query('SELECT * FROM person')
Future<List<Person>> findAllPersons();
@Query('SELECT * FROM person WHERE id = :id')
Future<Person?> findPersonById(int id);
@insert
Future<void> insertPerson(Person person);
@update
Future<void> updatePerson(Person person);
@delete
Future<void> deletePerson(Person person);
}
4. 创建数据库类
@Database(version: 1, entities: [Person])
abstract class AppDatabase extends FloorDatabase {
PersonDao get personDao;
}
5. 生成代码
运行命令生成数据库实现:
flutter packages pub run build_runner build
6. 使用数据库
final database = await $FloorAppDatabase.databaseBuilder('app_database.db').build();
final personDao = database.personDao;
// 插入数据
await personDao.insertPerson(Person(null, 'John'));
// 查询数据
final allPersons = await personDao.findAllPersons();
主要特性:
- 类型安全的 SQL 查询
- 自动生成数据库操作代码
- 支持事务
- 流式查询(可监听数据变化)
记得在运行前执行 flutter pub get 安装依赖,并使用 build_runner 生成必要的代码文件。

