SqliteDatabase class

A SQLite database instance.

Use one instance per database file where feasible.

If multiple instances are used, update notifications will not be propagated between them. For update notifications across isolates, use isolateConnectionFactory.

Implemented types
Mixed in types

Constructors

SqliteDatabase({required dynamic path, int maxReaders = defaultMaxReaders, SqliteOptions options = const SqliteOptions.defaults()})
Open a SqliteDatabase.
factory
SqliteDatabase.withFactory(SqliteOpenFactory openFactory, {int maxReaders = defaultMaxReaders})
Advanced: Open a database with a specified factory.

Properties

closed bool
Returns true if the connection is closed
no setteroverride
hashCode int
The hash code for this object.
no setterinherited
maxReaders int
Maximum number of concurrent read transactions.
final
mutex SimpleMutex
Global lock to serialize write transactions.
final
openFactory SqliteOpenFactory
Factory that opens a raw database connection in each isolate.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
updates Stream<UpdateNotification>
Use this stream to subscribe to notifications of updates to tables.
latefinaloverride-getter

Methods

close() Future<void>
override
computeWithDatabase<T>(Future<T> compute(Database db)) Future<T>
See SqliteReadContext.computeWithDatabase.
inherited
execute(String sql, [List<Object?> parameters = const []]) Future<ResultSet>
Execute a write query (INSERT, UPDATE, DELETE) and return the results (if any).
inherited
executeBatch(String sql, List<List<Object?>> parameterSets) Future<void>
Execute a write query (INSERT, UPDATE, DELETE) multiple times with each parameter set. This is more faster than executing separately with each parameter set.
inherited
get(String sql, [List<Object?> parameters = const []]) Future<Row>
Execute a read-only (SELECT) query and return a single result.
inherited
getAll(String sql, [List<Object?> parameters = const []]) Future<ResultSet>
Execute a read-only (SELECT) query and return the results.
inherited
getAutoCommit() Future<bool>
Returns true if the write connection is in auto-commit mode (no active transaction).
override
getOptional(String sql, [List<Object?> parameters = const []]) Future<Row?>
Execute a read-only (SELECT) query and return a single optional result.
inherited
initialize() Future<void>
Wait for initialization to complete.
isolateConnectionFactory() IsolateConnectionFactory
A connection factory that can be passed to different isolates.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onChange(Iterable<String>? tables, {Duration throttle = const Duration(milliseconds: 30), bool triggerImmediately = true}) Stream<UpdateNotification>
Create a Stream of changes to any of the specified tables.
inherited
readLock<T>(Future<T> callback(SqliteReadContext tx), {Duration? lockTimeout, String? debugContext}) Future<T>
Takes a read lock, without starting a transaction.
override
readTransaction<T>(Future<T> callback(SqliteReadContext tx), {Duration? lockTimeout}) Future<T>
Open a read-only transaction.
override
toString() String
A string representation of this object.
inherited
watch(String sql, {List<Object?> parameters = const [], Duration throttle = const Duration(milliseconds: 30), Iterable<String>? triggerOnTables}) Stream<ResultSet>
Execute a read query every time the source tables are modified.
inherited
writeLock<T>(Future<T> callback(SqliteWriteContext tx), {Duration? lockTimeout, String? debugContext}) Future<T>
Takes a global lock, without starting a transaction.
override
writeTransaction<T>(Future<T> callback(SqliteWriteContext tx), {Duration? lockTimeout}) Future<T>
Open a read-write transaction.
override

Operators

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

Constants

defaultMaxReaders → const int
The maximum number of concurrent read transactions if not explicitly specified.