mysql_client 0.0.3 copy "mysql_client: ^0.0.3" to clipboard
mysql_client: ^0.0.3 copied to clipboard

outdated

Native MySQL client written in Dart

Native MySQL client written in Dart for Dart #

See example directory for examples and usage

Roadmap #

  • ✅ Auth with mysql_native_password
  • ✅ Basic connection
  • ✅ Connection pool
  • ✅ Query placeholders
  • ✅ Transactions
  • ✅ Prepared statements (real, not emulated)
  • ❌ SSL connection
  • ❌ Send data in binary form when using prepared stmts (do not convert all into strings)
  • ❌ Multiple resul sets

Usage #

Create connection pool

final pool = MySQLConnectionPool(
    host: '127.0.0.1',
    port: 3306,
    userName: 'your_user',
    password: 'your_password',
    maxConnections: 10,
    databaseName: 'your_database_name', // optional,
  );

Query database

var result = await pool.execute("SELECT * FROM book WHERE id = :id", {"id": 1});
  for (final row in result.rows) {
    print(row.assoc());
  }

Prepared statements #

This library supports real prepared statements (using binary protocol).

Prepare statement

var stmt = await conn.prepare(
  "INSERT INTO book (author_id, title, price, created_at) VALUES (?, ?, ?, ?)",
);

Execute with params

await stmt.execute([null, 'Some book 1', 120, '2022-01-01']);
await stmt.execute([null, 'Some book 2', 10, '2022-01-01']);

Deallocate prepared statement

await stmt.deallocate();

Tests #

To run tests execute

dart test
180
likes
0
points
2.88k
downloads

Publisher

unverified uploader

Weekly Downloads

Native MySQL client written in Dart

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

buffer, crypto, tuple

More

Packages that depend on mysql_client