Пример работы с Moor библиотекой
-
перед началом необходимо сгенерировать файлы при помощи
pub run build_runner build --delete-conflicting-outputs
-
указать метод
main*
вbin\moor_samples.dart
как запускной
*)
import 'package:moor_samples/moor_samples.dart' as moor_samples;
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
void main(List<String> arguments) {
sqfliteFfiInit();
moor_samples.runConsoleApp();
}
sqfliteFfiInit
из package:sqflite_common_ffi
необходим для загрузки библиотеки sqlite3.dll (запуск на Windows)
Сценарий moor_samples.runConsoleApp()
- Создает базу данных
- Запускает удаление всех таблиц если они созданы
- Инициирует вставку категории, бренда, товара
- Разными способами читает данные из базы
Файл tables.moor
используется в аннотации к созданию бд,
так же можно писать сырые запросы, указывать таблицы и дао
@UseMoor(include: {
'tables.moor'
}, queries: {
'categoriesWithCount':
'SELECT *, (SELECT COUNT(*) FROM todos WHERE category = c.id) AS "amount" FROM categories c;',
/// запрос 'SELECT *' на наши продукты
'getAllProductsMethodFromDatabaseAnnotation':
'SELECT * FROM products_table;',
}, tables: [
BrandsTable,
ProductsTable,
CustomersTable,
CategoriesTable,
], daos: [
ProductDao
])
Результат можно увидеть в database.g.dart после запуска кодогенерации