如何使用 PostgreSQL 新包在 Flutter 中插入查询? postgres:^3.2.1

问题描述 投票:0回答:1

如何使用 PostgreSQL 新包在 Flutter 中插入查询? postgres:^3.2.1 所有其他文档都已过时、已弃用且不再工作,有人可以帮忙解决这个问题吗? 如何向表中插入数据? 如何删除表中的数据? 如何更新数据到表中?

甚至 ChatGPT 也提供了不再有效的旧方法。

import 'package:postgres/postgres.dart';

Future<void> insertUser() async {
  // Configure the database connection
  final connection = PostgreSQLConnection(
    'your_host', // e.g., 'localhost' or 'your_db_host'
    5432, // Port number, usually 5432 for PostgreSQL
    'your_database_name',
    username: 'your_username',
    password: 'your_password',
  );

  // Open the connection
  await connection.open();

  // Execute the insert statement
  await connection.query(
    'INSERT INTO users (user_name, user_id) VALUES (@userName, @userId)',
    substitutionValues: {
      'userName': 'ismail',
      'userId': 1001,
    },
  );

  // Close the connection
  await connection.close();
}

void main() async {
  await insertUser();
  print("User inserted");
}

例如,这里的PosgresqlConnection、Connection.Query、SubtitutionValue等,都不再使用并已弃用,这是之前执行插入的示例代码。

database flutter postgresql dart
1个回答
0
投票
import 'package:postgres/postgres.dart';

class Example {
  late final Connection _conn;
  static final Endpoint _endpoint = Endpoint(
    host: 'your_host', // e.g., 'localhost' or 'your_db_host',
    database: 'your_database_name',
    username: 'your_username',
    password: 'your_password',
  );

 static const ConnectionSettings _connectionSettings =
 ConnectionSettings(sslMode: SslMode.disable);

 Future<void> insertUser(String userName, int userId) async {
   try {
     _conn = await Connection.open(_endpoint, settings: 
     _connectionSettings);
     await _conn.execute(
      'INSERT INTO users (user_name, user_id) VALUES ($userName, $userId)');
   } catch (e) {
      print('Error: ${e.toString()}');
   } finally {
     _conn.close();
   }
  }
 }

void main() async {
  await Example().insertUser('ismail', 1001);
  print("User inserted");
}

我认为这样的事情应该有效。 pub.dev 还有更多示例:https://pub.dev/packages/postgres/example

© www.soinside.com 2019 - 2024. All rights reserved.