- Настройка Flutter Floor:
Прежде чем углубляться в различные методы манипулирования базой данных, необходимо настроить Flutter Floor в своем проекте. Начните с добавления необходимых зависимостей в файл pubspec.yaml:
dependencies:
floor: ^2.0.0
floor_generator: ^2.0.0
sqflite: ^2.0.0
- Создание сущностей:
Во 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});
}
- Определение 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);
}
- Создание базы данных:
Теперь пришло время создать саму базу данных. Аннотируйте свой класс базы данных с помощью@Databaseи объявите связанные с ним сущности и DAO. Например:
@Database(version: 1, entities: [User], daos: [UserDao])
abstract class AppDatabase extends FloorDatabase {
UserDao get userDao;
}
- Инициализация базы данных:
Чтобы использовать базу данных, вам необходимо ее инициализировать. Добавьте следующий код в функциюmain()вашего файла main.dart:
void main() async {
final database = await $FloorAppDatabase.databaseBuilder('app_database.db').build();
// Use the database instance
}
-
Выполнение операций 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); - Вставка пользователя:
-
Дополнительная функциональность:
Flutter Floor предоставляет дополнительные функции, такие как обновление записей и выполнение сложных запросов. Чтобы узнать больше об этих функциях, изучите официальную документацию.
Поздравляем! Теперь у вас есть знания для управления базами данных с помощью Flutter Floor. Не забудьте обратиться к официальной документации и поэкспериментировать с различными методами в соответствии с конкретными потребностями вашего приложения.