flutter如何使用floor数据库

我在Flutter项目中需要使用floor数据库,但不太清楚具体怎么操作。能请教一下如何正确集成和使用floor吗?包括数据库的创建、表的定义,以及基本的增删改查操作该怎么实现?最好能提供一些简单的代码示例。

2 回复

在Flutter中使用Floor数据库的步骤:

  1. 添加依赖:在pubspec.yaml中添加floor和floor_generator
  2. 创建实体类:使用@Entity注解
  3. 创建DAO:使用@dao注解定义数据库操作
  4. 创建数据库:使用@Database注解
  5. 运行代码生成:执行flutter packages pub run build_runner build
  6. 使用数据库:通过生成的代码进行CRUD操作

更多关于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 生成必要的代码文件。

回到顶部