SqliteDatabase class abstract
A SQLite database instance.
Use one instance per database file. If multiple instances are used, update notifications may not trigger, and calls may fail with "SQLITE_BUSY" errors.
- Implemented types
- Mixed-in types
Constructors
- SqliteDatabase({required dynamic path, int maxReaders = SqliteDatabase.defaultMaxReaders, SqliteOptions options = const SqliteOptions.defaults()})
-
Open a SqliteDatabase.
factory
-
SqliteDatabase.withFactory(AbstractDefaultSqliteOpenFactory<
CommonDatabase> openFactory, {int maxReaders = SqliteDatabase.defaultMaxReaders}) -
Advanced: Open a database with a specified factory.
factory
Properties
- closed → bool
-
For transactions, returns true if the lock is held (even if it has been
rolled back).
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
-
isInitialized
→ Future<
void> -
no setterinherited
- maxReaders → int
-
Maximum number of concurrent read transactions.
no setterinherited
-
openFactory
→ AbstractDefaultSqliteOpenFactory<
CommonDatabase> -
Factory that opens a raw database connection in each isolate.
no setterinherited
- 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.
no setterinherited
Methods
-
close(
) → Future< void> -
inherited
-
computeWithDatabase<
T> (Future< T> compute(CommonDatabase 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< parameterSets) → Future<Object?> >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 auto-commit is enabled. This means the database is not
currently in a transaction. This may be true even if a transaction lock
is still held, when the transaction has been committed or rolled back.
inherited
-
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.
inherited
-
isolateConnectionFactory(
) → IsolateConnectionFactory< CommonDatabase> -
A connection factory that can be passed to different isolates.
inherited
-
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.
inherited
-
readTransaction<
T> (Future< T> callback(SqliteReadContext tx), {Duration? lockTimeout}) → Future<T> -
Open a read-only transaction.
inherited
-
refreshSchema(
) → Future< void> -
Ensures that all connections are aware of the latest schema changes applied (if any).
Queries and watch calls can potentially use outdated schema information after a schema update.
inherited
-
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.
inherited
-
writeTransaction<
T> (Future< T> callback(SqliteWriteContext tx), {Duration? lockTimeout}) → Future<T> -
Open a read-write transaction.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Constants
- defaultMaxReaders → const int
- The maximum number of concurrent read transactions if not explicitly specified.