DatabaseConnection class

A database connection managed by drift. This consists of two components:

  • a QueryExecutor, which runs sql statements.
  • a StreamQueryStore, which dispatches table changes to listening queries, on which the auto-updating queries are based.
Implemented types

Constructors

DatabaseConnection(QueryExecutor executor, {StreamQueryStore? streamQueries, FutureOr<Object?> connectionData})
Constructs a raw database connection from the executor and optionally a specified streamQueries implementation to use.
DatabaseConnection.delayed(FutureOr<DatabaseConnection> connection, {SqlDialect dialect = SqlDialect.sqlite})
Database connection that is instantly available, but delegates work to a connection only available through a Future.
factory
DatabaseConnection.fromExecutor(QueryExecutor executor)
Constructs a DatabaseConnection from the QueryExecutor by using the default type system and a new StreamQueryStore.

Properties

connectionData FutureOr<Object?>
Optional data attached to this connection.
final
dialect SqlDialect
The SqlDialect to use for this database engine.
read-onlyoverride
executor QueryExecutor
The executor to use when queries are executed.
final
hashCode int
The hash code for this object.
read-onlyinherited
runtimeType Type
A representation of the runtime type of the object.
read-onlyinherited
streamQueries → StreamQueryStore
Manages active streams from select statements.
final

Methods

beginTransaction() TransactionExecutor
Starts a TransactionExecutor.
override
close() Future<void>
Closes this database connection and releases all resources associated with it. Implementations should also handle close calls in a state where the database isn't open.
override
ensureOpen(QueryExecutorUser user) Future<bool>
Opens the executor, if it has not yet been opened.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
runBatched(BatchedStatements statements) Future<void>
Prepares and runs statements.
override
runCustom(String statement, [List<Object?>? args]) Future<void>
Runs a custom SQL statement without any variables. The result of that statement will be ignored.
override
runDelete(String statement, List<Object?> args) Future<int>
Runs an delete statement and returns how many rows where affected.
override
runInsert(String statement, List<Object?> args) Future<int>
Runs an insert statement with the given variables. Returns the row id or the auto_increment id of the inserted row.
override
runSelect(String statement, List<Object?> args) Future<List<Map<String, Object?>>>
Runs a select statement with the given variables and returns the raw results.
override
runUpdate(String statement, List<Object?> args) Future<int>
Runs an update statement with the given variables and returns how many rows where affected.
override
toString() String
A string representation of this object.
inherited
withExecutor(QueryExecutor executor) DatabaseConnection
Returns a database connection that is identical to this one, except that it uses the provided executor.

Operators

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