ormed_sqlite 0.1.0-dev+3
ormed_sqlite: ^0.1.0-dev+3 copied to clipboard
SQLite adapter for the routed ORM driver interface.
example/ormed_sqlite_example.dart
/// Small example showing how to bootstrap the SQLite adapter.
library;
import 'package:ormed/ormed.dart';
import 'package:ormed_sqlite/ormed_sqlite.dart';
part 'ormed_sqlite_example.orm.dart';
@OrmModel(table: 'users')
class ExampleUser extends Model<ExampleUser> {
const ExampleUser({required this.id, required this.email});
@OrmField(isPrimaryKey: true)
final int id;
final String email;
}
void main() async {
final adapter = SqliteDriverAdapter.inMemory();
final registry = ModelRegistry()
..register(ExampleUserOrmDefinition.definition);
final context = QueryContext(registry: registry, driver: adapter);
await adapter.executeRaw(
'CREATE TABLE users (id INTEGER PRIMARY KEY, email TEXT NOT NULL)',
);
StructuredQueryLogger.printing(pretty: true).attach(context);
final repository = context.repository<$ExampleUser>();
final user = $ExampleUser(id: 1, email: 'example@example.com');
final insertPreview = repository.previewInsert(user);
print('Insert preview => ${insertPreview.sql} ${insertPreview.parameters}');
await repository.insert(user);
final query = context.query<$ExampleUser>().whereEquals('email', user.email);
final queryPreview = query.toSql();
print('Query preview => ${queryPreview.sql} ${queryPreview.parameters}');
final results = await query.get();
print('Fetched \\${results.length} user(s)');
await adapter.close();
}