MySQL Database
query
Future<MySqlResponse> app.mysql.query({required String table, String? schema, String? instance, MySqlQueryOptions? options})
Query MySQL data. Supports field selection, pagination, sorting, and filter conditions.
Supported filter operators: eq (equal), neq (not equal), gt (greater than), gte (greater than or equal), lt (less than), lte (less than or equal), like (fuzzy match), in (in list), is (null check)
Parameters
Table name
Database name
Database instance identifier (requires schema)
Query options
Response
Example
- Basic Query
- Filter Query
final result = await app.mysql.query(
table: 'users',
options: MySqlQueryOptions(
select: '*',
limit: 10,
offset: 0,
order: 'id.asc',
withCount: true,
),
);
if (result.isSuccess) {
print('Total: ${result.total}');
for (final row in result.data) {
print('Record: $row');
}
}
final result = await app.mysql.query(
table: 'users',
options: MySqlQueryOptions(
select: 'id,name,age',
filters: {'age': 'gt.18', 'name': 'like.%Zhang%'},
limit: 20,
),
);
if (result.isSuccess) {
print('Found ${result.data.length} records');
}
insert
Future<MySqlWriteResponse> app.mysql.insert({required String table, required dynamic data, String? schema, String? instance, bool upsert = false, String? onConflict})
Insert data. Supports single and batch insert, as well as Upsert mode.
Parameters
Table name
Insert data, single Map or batch List<Map>
Database name
Database instance identifier
Whether to enable Upsert mode (default false)
Upsert conflict field
Response
Example
- Single Insert
- Batch Insert
- Upsert
final result = await app.mysql.insert(
table: 'users',
data: {'name': 'Zhang San', 'age': 25},
);
if (result.isSuccess) {
print('Insert successful');
}
final result = await app.mysql.insert(
table: 'users',
data: [
{'name': 'Zhang San', 'age': 25},
{'name': 'Li Si', 'age': 30},
],
);
if (result.isSuccess) {
print('Batch insert successful');
}
final result = await app.mysql.insert(
table: 'users',
data: {'id': 1, 'name': 'Zhang San', 'age': 26},
upsert: true,
onConflict: 'id',
);
if (result.isSuccess) {
print('Upsert successful');
}
update (MySQL)
Future<MySqlWriteResponse> app.mysql.update({required String table, required Map<String, dynamic> data, required Map<String, String> filters, String? schema, String? instance})
Update MySQL data. WHERE condition is required.
Parameters
Table name
Data to update
WHERE condition (cannot be empty)
Database name
Database instance identifier
Response
Example
- Example
final result = await app.mysql.update(
table: 'users',
data: {'age': 26},
filters: {'name': 'eq.Zhang San'},
);
if (result.isSuccess) {
print('Update successful');
} else {
print('Update failed: ${result.message}');
}
delete (MySQL)
Future<MySqlWriteResponse> app.mysql.delete({required String table, required Map<String, String> filters, String? schema, String? instance})
Delete MySQL data. WHERE condition is required.
Parameters
Table name
WHERE condition (cannot be empty)
Database name
Database instance identifier
Response
Example
- Example
final result = await app.mysql.delete(
table: 'users',
filters: {'name': 'eq.Zhang San'},
);
if (result.isSuccess) {
print('Delete successful');
}
count
Future<MySqlCountResponse> app.mysql.count({required String table, Map<String, String>? filters, String? schema, String? instance})
Count MySQL data records.
Parameters
Table name
Filter conditions
Database name
Database instance identifier
Response
Example
- Example
final result = await app.mysql.count(
table: 'users',
filters: {'age': 'gt.18'},
);
if (result.isSuccess) {
print('Matching records: ${result.count}');
} else {
print('Count failed: ${result.message}');
}