Интеграция начинается с добавления зависимостей в pubspec.yaml файле:
dependencies:
flutter:
sdk: flutter
jaguar_query: #Добавить
jaguar_orm: ^2.2.5 #Добавить
jaguar_query_sqflite: ^2.2.5 #Добавить
dev_dependencies:
flutter_test:
sdk: flutter
jaguar_orm_gen: ^2.2.20 #Добавить
build_runner: #Добавить
Вместо jaguar_query_sqflite можно указать совместимую библиотеку. В данной библиотеке описан адаптер подключения к sqlite базе данных. Можно указать, например jaguar_query_postgres для доступа к postgresql.
Jaguqr orm напоминает doctrine из мира php или hibernate из java. Для работы с сущьностью нужно создать 2 класса:
Класс модели:
import 'package:jaguar_orm/jaguar_orm.dart';
class Car {
@PrimaryKey(auto: true)
int id;
String name = '';
String brand = '';
String model = '';
}
В целом это обычный дата класс. Аннотацией мы указываем первичный ключь модель. Есть еще аннотации, соотносящие имя поля в бд и свойства класса, связь сущностей. Посмотреть можно тут /lib/src/annotations/property.dart.
Следующим шагом нужно создать бин. Именно так этот класс называет официальная документаия.
import 'package:jaguar_query/jaguar_query.dart';
import 'package:jaguar_orm/jaguar_orm.dart';
import './Car.dart';
part 'CarBean.jorm.dart';
@GenBean()
class CarBean extends Bean<Car> with _CarBean {
CarBean(Adapter adapter) : super(adapter);
String tableName = 'car';
}
На этом месте я завис на некоторое время. В файловой структуре моего проекта дата класс и бин класс лежат в разных папках. Поэтому необходимо указать ко