跳到主要内容

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');
}
}

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

示例

final result = await app.mysql.insert(
table: 'users',
data: {'name': '张三', 'age': 25},
);

if (result.isSuccess) {
print('插入成功');
}

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}');
}