Освоение Flutter Floor: подробное руководство по манипулированию базами данных во Flutter

  1. Настройка Flutter Floor:
    Прежде чем углубляться в различные методы манипулирования базой данных, необходимо настроить Flutter Floor в своем проекте. Начните с добавления необходимых зависимостей в файл pubspec.yaml:
dependencies:
  floor: ^2.0.0
  floor_generator: ^2.0.0
  sqflite: ^2.0.0
  1. Создание сущностей:
    Во Flutter Floor сущность представляет собой таблицу в базе данных. Определите свои объекты с помощью классов Dart и аннотируйте их с помощью декоратора @Entity. Например, давайте создадим сущность «Пользователь» с полями идентификатора, имени и возраста:
@Entity(tableName: 'users')
class User {
  @PrimaryKey(autoGenerate: true)
  final int id;
  final String name;
  final int age;
  User({required this.id, required this.name, required this.age});
}
  1. Определение DAO:
    DAO (объекты доступа к данным) выступают в роли посредников между вашим приложением и базой данных. Они определяют методы для выполнения операций CRUD (создание, чтение, обновление, удаление). Аннотируйте свой класс DAO с помощью @daoи объявите необходимые методы. Вот пример UserDao:
@dao
abstract class UserDao {
  @Query('SELECT * FROM users')
  Future<List<User>> getUsers();
  @insert
  Future<void> insertUser(User user);
  @delete
  Future<void> deleteUser(User user);
}
  1. Создание базы данных:
    Теперь пришло время создать саму базу данных. Аннотируйте свой класс базы данных с помощью @Databaseи объявите связанные с ним сущности и DAO. Например:
@Database(version: 1, entities: [User], daos: [UserDao])
abstract class AppDatabase extends FloorDatabase {
  UserDao get userDao;
}
  1. Инициализация базы данных:
    Чтобы использовать базу данных, вам необходимо ее инициализировать. Добавьте следующий код в функцию main()вашего файла main.dart:
void main() async {
  final database = await $FloorAppDatabase.databaseBuilder('app_database.db').build();
  // Use the database instance
}
  1. Выполнение операций CRUD.
    Теперь, когда ваша база данных настроена, давайте рассмотрим некоторые методы выполнения операций CRUD:

    • Вставка пользователя:
      Чтобы вставить нового пользователя в базу данных, используйте метод insertUser()из UserDao:
    final user = User(id: 1, name: 'John Doe', age: 25);
    await database.userDao.insertUser(user);
    • Извлечение пользователей:
      Чтобы получить всех пользователей из базы данных, используйте метод getUsers()из UserDao:
    final users = await database.userDao.getUsers();
    • Удаление пользователя:
      Чтобы удалить пользователя из базы данных, используйте метод deleteUser()из UserDao:
    await database.userDao.deleteUser(user);
  2. Дополнительная функциональность:
    Flutter Floor предоставляет дополнительные функции, такие как обновление записей и выполнение сложных запросов. Чтобы узнать больше об этих функциях, изучите официальную документацию.

Поздравляем! Теперь у вас есть знания для управления базами данных с помощью Flutter Floor. Не забудьте обратиться к официальной документации и поэкспериментировать с различными методами в соответствии с конкретными потребностями вашего приложения.