SqliteConnection class

A connection to one SQLite database via package:sqlite3 (FFI).

SQLite is single-writer, so keep one connection per isolate. Because the driver is synchronous, the object handed to transaction callbacks is this same connection: statements issued elsewhere in the isolate while a transaction is open run inside it, exactly as with Laravel's single PDO handle.

Inheritance

Constructors

SqliteConnection.inMemory()
A fresh in-memory database. Ideal for tests: real SQL, no server.
factory
SqliteConnection.open(String path)
Opens (creating if needed) the database file at path.
factory

Properties

grammar → Grammar
no setteroverride
hashCode → int
The hash code for this object.
no setterinherited
queryLog → List<QueryEvent>
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
transactionDepth → int
no setteroverride

Methods

close() → Future<void>
override
disableQueryLog() → void
inherited
enableQueryLog() → void
Start recording statements into queryLog. Useful in tests to assert how many queries a code path issued.
inherited
execute(String sql, [List<Object?> bindings = const []]) → Future<int>
Runs INSERT/UPDATE/DELETE/DDL and returns the number of affected rows.
override
flushQueryLog() → void
inherited
insertGetId(String sql, List<Object?> bindings, {String? primaryKey}) → Future<Object?>
Runs an INSERT and returns the generated primary key.
override
listen(void listener(QueryEvent event)) → void
Observe every statement (for logging, tracing, slow-query alerts).
inherited
logged<R>(String sql, List<Object?> bindings, FutureOr<R> run()) → Future<R>
Times run, publishes a QueryEvent, and converts driver errors into QueryException carrying the SQL and bindings.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
select(String sql, [List<Object?> bindings = const []]) → Future<List<Row>>
Runs a SELECT and returns every row. Prefer the query builder's chunk()/lazy() for large tables.
override
toString() → String
A string representation of this object.
inherited
transaction<R>(Future<R> body(Connection tx)) → Future<R>
Runs body inside a transaction: commits when it returns, rolls back and rethrows when it throws. Nested calls use savepoints.
override
wrapError(Object error, String sql, List<Object?> bindings) → QueryException
Adapters override to map driver errors (unique violations, ...).
override

Operators

operator ==(Object other) → bool
The equality operator.
inherited