laconic_mysql
MySQL driver for the Laconic query builder.
Installation
dependencies:
laconic: ^2.2.0
laconic_mysql: ^1.1.0
Usage
import 'package:laconic/laconic.dart';
import 'package:laconic_mysql/laconic_mysql.dart';
void main() async {
final laconic = Laconic(MysqlDriver(MysqlConfig(
host: '127.0.0.1',
port: 3306,
database: 'my_database',
username: 'root',
password: 'password',
)));
// Query users
final users = await laconic.table('users').where('active', true).get();
// Insert data
final id = await laconic.table('users').insertGetId({
'name': 'John',
'age': 25,
});
// Update data
await laconic.table('users').where('id', id).update({'age': 26});
// Delete data
await laconic.table('users').where('id', id).delete();
// Don't forget to close
await laconic.close();
}
Configuration
MysqlConfig accepts the following parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
database |
String |
required | Database name |
host |
String |
'127.0.0.1' |
MySQL host address |
port |
int |
3306 |
Connection port |
username |
String |
'root' |
Connection username |
password |
String |
required | Connection password |
Connection Pooling
The MySQL driver uses connection pooling internally for better performance. Connections are managed automatically and released back to the pool after each query.
Query Listener
You can add a query listener for debugging:
final laconic = Laconic(
MysqlDriver(MysqlConfig(
database: 'my_database',
password: 'password',
)),
listen: (query) {
print('SQL: ${query.sql}');
print('Bindings: ${query.bindings}');
},
);
Transactions
await laconic.transaction(() async {
final userId = await laconic.table('users').insertGetId({
'name': 'Test User',
});
await laconic.table('posts').insert([
{'user_id': userId, 'title': 'First Post'},
]);
});
License
MIT License
Libraries
- laconic_mysql
- MySQL driver for Laconic query builder.