mysql_client 0.0.3
mysql_client: ^0.0.3 copied to clipboard
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});
Print result
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