insert method

  1. @override
Future<bool> insert(
  1. Map<String, dynamic> values
)
inherited

Implementation

@override
Future<bool> insert(Map<String, dynamic> values) async {
  try {
    if (values.isEmpty) {
      throw InvalidArgumentException(
        "Values map cannot be empty for insert operation.",
      );
    }

    conn = await getConnection();
    final columns = values.keys.toList();
    final paramBindings = <String, dynamic>{};

    // Create parameter placeholders
    final placeholders = values.keys
        .map((key) {
          final paramName = _nextParamName();
          paramBindings[paramName] = values[key];
          return ":$paramName";
        })
        .join(", ");

    final query =
        "INSERT INTO $getTable (${columns.join(', ')}) VALUES ($placeholders)";
    await conn.insert(query, paramBindings);
    return true;
  } catch (e) {
    rethrow;
  }
}