DB class
Database manager for Flint Dart
- Automatically connects on first use (lazy init).
- Reads connection info from .env(DB_CONNECTION,DB_HOST,DB_PORT,DB_NAME,DB_USER,DB_PASSWORD,DB_SECURE).
- Supports MySQL & PostgreSQL with query normalization.
- Provides retry logic if the database is not reachable.
Example:
final users = await DB.query("SELECT * FROM users WHERE id = ?", positionalParams: [1]);
final lastId = await DB.getLastInsertId("users", "id");
Constructors
- DB()
Properties
- hashCode → int
- 
  The hash code for this object.
  no setterinherited
- runtimeType → Type
- 
  A representation of the runtime type of the object.
  no setterinherited
Methods
- 
  noSuchMethod(Invocation invocation) → dynamic 
- 
  Invoked when a nonexistent method or property is accessed.
  inherited
- 
  toString() → String 
- 
  A string representation of this object.
  inherited
Operators
- 
  operator ==(Object other) → bool 
- 
  The equality operator.
  inherited
Static Properties
Static Methods
- 
  autoConnect() → Future< void> 
- Connect to the database using environment variables.
- 
  buildLimitClause(int limit, [int? offset]) → String 
- Build a LIMIT/OFFSET clause.
- 
  close() → Future< void> 
- Close active connection.
- 
  execute(String sql, {List? positionalParams, Map< String, dynamic> ? namedParams}) → Future<void> 
- Execute a command (INSERT, UPDATE, DELETE).
- 
  getLastInsertId(String tableName, String primaryKey) → Future 
- Get the last inserted ID (DB-specific).
- 
  normalizeQuery(String sql, {List? positionalParams, Map< String, dynamic> ? namedParams}) → (String, List)
- Normalize SQL and parameters for the active driver.
- 
  query(String sql, {List? positionalParams, Map< String, dynamic> ? namedParams}) → Future<List< Map> >
- Execute a query with parameters.
- 
  tableExists(String tableName) → Future< bool> 
- Check if a table exists. Check if a table exists.
- 
  tryAutoConnect({int retries = 5, int delaySeconds = 3}) → Future< void> 
- Attempt auto-connect with retries.