MySQL 数据库
query
Future<MySqlResponse> app.mysql.query({required String table, String? schema, String? instance, MySqlQueryOptions? options})
查询 MySQL 数据。支持字段筛选、分页、排序和条件过滤。
支持的过滤运算符:eq(等于)、neq(不等于)、gt(大于)、gte(大于等于)、lt(小于)、lte(小于等于)、like(模糊匹配)、in(在列表中)、is(判断 null)
参数
table
String
表名
schema
String?
数据库名
instance
String?
数据库实例标识(需搭配 schema)
options
MySqlQueryOptions?
查询选项
返回
Future
MySqlResponse
示例
- 基础查询
- 条件筛选
final result = await app.mysql.query(
table: 'users',
options: MySqlQueryOptions(
select: '*',
limit: 10,
offset: 0,
order: 'id.asc',
withCount: true,
),
);
if (result.isSuccess) {
print('总数: ${result.total}');
for (final row in result.data) {
print('记录: $row');
}
}
final result = await app.mysql.query(
table: 'users',
options: MySqlQueryOptions(
select: 'id,name,age',
filters: {'age': 'gt.18', 'name': 'like.%张%'},
limit: 20,
),
);
if (result.isSuccess) {
print('查询到 ${result.data.length} 条记录');
}
insert
Future<MySqlWriteResponse> app.mysql.insert({required String table, required dynamic data, String? schema, String? instance, bool upsert = false, String? onConflict})
插入数据。支持单条和批量插入,以及 Upsert 模式。
参数
table
String
表名
data
dynamic
插入数据,单条 Map 或批量 List<Map>
schema
String?
数据库名
instance
String?
数据库实例标识(需搭配 schema)
upsert
bool
是否开启 Upsert 模式(默认 false)
onConflict
String?
Upsert 冲突字段
返回
Future
MySqlWriteResponse
示例
- 单条插入
- 批量插入
- Upsert
final result = await app.mysql.insert(
table: 'users',
data: {'name': '张三', 'age': 25},
);
if (result.isSuccess) {
print('插入成功');
}
final result = await app.mysql.insert(
table: 'users',
data: [
{'name': '张三', 'age': 25},
{'name': '李四', 'age': 30},
],
);
if (result.isSuccess) {
print('批量插入成功');
}
final result = await app.mysql.insert(
table: 'users',
data: {'id': 1, 'name': '张三', 'age': 26},
upsert: true,
onConflict: 'id',
);
if (result.isSuccess) {
print('Upsert 成功');
}
update (MySQL)
Future<MySqlWriteResponse> app.mysql.update({required String table, required Map<String, dynamic> data, required Map<String, String> filters, String? schema, String? instance})
更新 MySQL 数据。必须提供 WHERE 条件。
参数
table
String
表名
data
Map<String, dynamic>
要更新的数据
filters
Map<String, String>
WHERE 条件(不能为空)
schema
String?
数据库名
instance
String?
数据库实例标识(需搭配 schema)
返回
Future
MySqlWriteResponse
示例
- 示例
final result = await app.mysql.update(
table: 'users',
data: {'age': 26},
filters: {'name': 'eq.张三'},
);
if (result.isSuccess) {
print('更新成功');
} else {
print('更新失败: ${result.message}');
}
delete (MySQL)
Future<MySqlWriteResponse> app.mysql.delete({required String table, required Map<String, String> filters, String? schema, String? instance})
删除 MySQL 数据。必须提供 WHERE 条件。
参数
table
String
表名
filters
Map<String, String>
WHERE 条件(不能为空)
schema
String?
数据库名
instance
String?
数据库实例标识(需搭配 schema)
返回
Future
MySqlWriteResponse
示例
- 示例
final result = await app.mysql.delete(
table: 'users',
filters: {'name': 'eq.张三'},
);
if (result.isSuccess) {
print('删除成功');
}
count
Future<MySqlCountResponse> app.mysql.count({required String table, Map<String, String>? filters, String? schema, String? instance})
统计 MySQL 数据数量。
参数
table
String
表名
filters
Map<String, String>?
筛选条件
schema
String?
数据库名
instance
String?
数据库实例标识(需搭配 schema)
返回
Future
MySqlCountResponse
示例
- 示例
final result = await app.mysql.count(
table: 'users',
filters: {'age': 'gt.18'},
);
if (result.isSuccess) {
print('符合条件的数据量: ${result.count}');
} else {
print('统计失败: ${result.message}');
}