You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter使用postgres:^3.2.1实现PostgreSQL增删改查询求助

基于postgres ^3.2.1的Flutter数据库增删改实现

1. 依赖配置

在项目的pubspec.yaml中添加最新版依赖:

dependencies:
  postgres: ^3.2.1

2. 初始化数据库连接

新版本废弃了PostgreSQLConnection,改用PgPool(连接池,推荐)或PgConnection(单连接)管理数据库连接:

import 'package:postgres/postgres.dart';

// 初始化连接池
final PgPool pool = PgPool(
  PgEndpoint(
    host: '你的数据库地址',
    port: 5432, // 默认PostgreSQL端口
    database: '数据库名称',
    username: '用户名',
    password: '密码',
  ),
  settings: const PgPoolSettings(
    maxConnections: 5, // 配置最大连接数
  ),
);

// 程序结束时关闭连接池释放资源
// await pool.close();

3. 插入操作

使用execute方法执行插入SQL,通过parameters传递参数(占位符用$1、$2按顺序对应):

Future<void> insertUser(String name, int age) async {
  try {
    await pool.execute(
      'INSERT INTO users (name, age) VALUES ($1, $2)',
      parameters: [name, age],
    );
    print('插入成功');
  } catch (e) {
    print('插入失败: $e');
  }
}

4. 更新操作

同样通过execute执行更新SQL,可通过返回结果的affectedRows判断是否成功修改数据:

Future<void> updateUser(int userId, String newName) async {
  try {
    final PgResult result = await pool.execute(
      'UPDATE users SET name = $1 WHERE id = $2',
      parameters: [newName, userId],
    );
    if (result.affectedRows > 0) {
      print('更新成功,影响行数: ${result.affectedRows}');
    } else {
      print('未找到ID为$userId的用户');
    }
  } catch (e) {
    print('更新失败: $e');
  }
}

5. 删除操作

执行删除SQL,同样通过affectedRows验证删除结果:

Future<void> deleteUser(int userId) async {
  try {
    final PgResult result = await pool.execute(
      'DELETE FROM users WHERE id = $1',
      parameters: [userId],
    );
    if (result.affectedRows > 0) {
      print('删除成功,影响行数: ${result.affectedRows}');
    } else {
      print('未找到ID为$userId的用户');
    }
  } catch (e) {
    print('删除失败: $e');
  }
}

关键注意事项

  • 新版本已移除substitutionValues,统一使用位置占位符$1、$2配合parameters列表传参
  • 优先使用PgPool管理连接,避免频繁创建/销毁连接带来的性能损耗
  • 必须捕获SQL执行过程中的异常,包括连接失败、语法错误、约束冲突等
  • 若需执行查询操作,可使用pool.query方法,返回PgResult用于遍历获取数据

内容的提问来源于stack exchange,提问作者Ismail Ibrahim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:53:24