Aus öffentlichen Paketdaten erstellte Orientierung.
mysql_utils ist eine Hilfsbibliothek für mysql_client_plus, die die Interaktion mit MySQL-Datenbanken in Flutter-Anwendungen vereinfacht. Sie bietet optimierte Methoden zum Herstellen einer Verbindung mit MySQL-Datenbanken, Ausführen von Abfragen und Verarbeiten von Ergebnissen mit minimalem Boilerplate-Code. Entwickelt, um die Produktivität der Entwickler zu steigern, abstrahiert sie allgemeine Operationen, während die Kompatibilität über mehrere Plattformen wie Android, iOS, macOS, Windows und Linux gewährleistet bleibt. Das Paket ist ideal für Projekte, die eine zuverlässige und einfache MySQL-Integration ohne komplizierte Einrichtung erfordern.
Anwendungsfälle
Einfache MySQL-Abfrageausführung
Datenbankverbindungsverwaltung
Plattformübergreifender Datenbankzugriff
Verfeinerte CRUD-Operationen
Integration mit mysql_client_plus
Hauptmerkmale
Benutzerfreundliche Abfrageschnittstelle
Auf mysql_client_plus basiert
Unterstützt alle wichtigen Desktop- und Mobilplattformen
Verringert Boilerplate-Code
Automatische Ergebnisanalyse
Geeignet für
Flutter-Apps, die eine MySQL-Verbindung benötigen
Entwickler, die einfache Datenbankhilfen suchen
Projekte, die mysql_client_plus verwenden
Backend-Dienste mit MySQL-Datenbanken
Schnellprototyp mit Datenbanken
Hinweise
Erfordert mysql_client_plus als Abhängigkeit
Beschränkt auf MySQL-Datenbanken
Nicht geeignet für komplexe SQL-Transaktionen
Kein integrierter Migrations-Unterstützung
Abhängig von der Verfügbarkeit des externen MySQL-Servers
Original-README
Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.
mysql_utils
Flutter mysql plugin helps extend classes.
mysql_client has been abandoned and is now maintained by the author of this library. The new library is mysql_client_plus。
Updated settings from Map to MysqlUtilsSettings ⚠️⚠️⚠️
Added support for BLOB and JSON types
Added support for SSL certificates
Added support for calling stored procedures
Added support for sha256_password authentication
Added global debug option
Added tests
APIs
Initialization connection
Use the singleton mode, and call close() after use to close the database connection.
var db = MysqlUtils(
// ⚠️⚠️⚠️ settings from `Map` to `MysqlUtilsSettings`
settings: MysqlUtilsSettings(
// The hostname of the MySQL server, defaults to localhost.
host: '127.0.0.1',
// The port number to connect to, defaults to 3306.
port: 3306,
// The username to connect as, defaults to root.
user: 'your_user_sha256',
// The password to connect with, defaults to empty string.
password: 'your_password_sha256',
// The database to use, defaults to empty string.
db: 'testdb',
// Whether to use SSL, defaults to false.
secure: true,
// The prefix to use for table names, defaults to empty string.
prefix: '',
// The maximum number of connections to keep open, defaults to 1000.
maxConnections: 1000,
// The timeout in milliseconds for each connection, defaults to 10000.
timeoutMs: 10000,
// Whether to escape all queries, defaults to true.
sqlEscape: true,
// Whether to use a connection pool, defaults to false.
pool: true,
// The collation to use for all queries, defaults to utf8mb4_general_ci.
collation: 'utf8mb4_general_ci',
// Whether to use SSL, defaults to false.
debug: true,
// The SSL options to use for all queries, defaults to null.// securityContext: SecurityContext(),// sslMode: SslMode.require,// onBadCertificate: (certificate) => true,
),
errorLog: (error) {
print(error);
},
sqlLog: (sql) {
print(sql);
},
connectInit: (db1) async {
print('whenComplete');
}
);
query
Native query
//var row = await db.query('select id from test_data2 where id=? or string_column like ?', whereValues: [1, '%串%'], isStmt: true);var row = await db.query("select id from test_data2 where id=1 or string_column like '%mysql%'");
print(row.toMap());
print(row.toMap());
//// print(row.rowsAssoc.first.assoc());// for (var item in row.rowsAssoc) {// print(item.assoc());// }// for (final row in row.rowsAssoc) {// print(row.colAt(0));// print(row.colByName("nickname"));// print(row.assoc());// }// db.close();
Multi table query
Query Multi data , multi-table query
var res = await db.getAll(
table: 'user tb1,upload tb2',
fields: 'tb2.fileSize',
where: 'tb2.id>0 and tb2.uid=tb1.id',
debug: true,
);
print(res);
getOne
Query one data
var row = await db.getOne(
table: 'table',
fields: '*',
//excludeFields: 'telphone,image',//group: 'name',//having: 'name',//order: 'id desc',//limit: 10,//10 or '10 ,100'// where: {// 'email': 'xxx@google.com',// 'id': ['between', '1,4'],// 'email2': ['=', 'sss@google.com'],// 'news_title': ['like', '%name%'],// 'user_id': ['>', 1],// 'user_id': ['<', 1],// 'user_id': ['<>', 1],// 'user_id': ['=', 1],// 'email3': ['!=', 'sss@google.com'],// '_SQL': '(`isNet`=1 OR `isNet`=2)',// },//where:'`id`=1 AND name like "%jame%"',
);
print(row);
getAll
Query multiple data
var row = await db.getAll(
table: 'table',
fields: '*',
//excludeFields: 'telphone,image',//group: 'name',//having: 'name',//order: 'id desc',//limit: 10,//10 or '10 ,100'// where: {// 'email': 'xxx@google.com',// 'id': ['between', '1,4'],// 'email2': ['=', 'sss@google.com'],// 'news_title': ['like', '%name%'],// 'user_id': ['>', 1],// '_SQL': '(`isNet`=1 OR `isNet`=2)',// },//where:'`id`=1 AND name like "%jame%"',
);
print(row);