Ich habe MySQL oft verwendet und spiele hauptsächlich mit NodeJS. Ich habe einen Artikel speziell darüber geschrieben, wie man
Geben Sie das Thema MySQL ein: Hinzufügen, Löschen, Ändern und AbfragenZuerst laden wir ein Abhängigkeitspaket namens mysql herunter. Dieses Paket stellt über NodeJS-Code eine Verbindung zur Datenbank her, um die Datenbank zu betreiben. Erstellen Sie einen Ordner und generieren Sie schnell die Datei D:\nodejs_mysql>npm init -y # Schnelles Erstellen von Paketverwaltungsdateien Abhängigkeiten installieren D:\nodejs_mysql>npm i mysql -D # MySQL-Abhängigkeitspaket installieren Erstellen Sie eine const mysql = erfordern("mysql"); // Einen MySQL-Verbindungspool erstellen const pool = mysql.createPool({ Host: "127.0.0.1", // Die Adresse 127.0.0.1 für die Verbindung zur Datenbank ist die lokale MySQL Benutzer: „root“, // Benutzername für die Verbindung mit der Datenbank. Root hat die höchste Autorität. Passwort: „“, // Passwort für die Verbindung mit der Datenbank. Datenbank: „apm“, // Datenbankname für den Vorgang. Port: „3306“, // Portnummer für die Verbindung mit MySQL. multipleStatements: true, // Dieses Element kann ignoriert werden, wenn Sie mehrere SQL-Anweisungen gleichzeitig ausführen möchten. }); Funktion select() { // Anfrage zur Verbindung mit MySQL pool.getConnection((err, Verbindung) => { //Bei fehlgeschlagener Verbindung einen Fehler melden if (err) throw err; // Holen Sie sich ein Verbindungsobjekt und rufen Sie die Abfragemethode auf, um die SQL-Anweisung auszuführen. let sql = "select * from goods"; //Führen Sie die SQL-Anweisungsabfrage aus. Der zweite Parameter ist der von der SQL-Anweisung benötigte Parameter. Sie können ihn leer lassen. connection.query(sql, (errors, results, fields) => { // Verbindung freigeben connection.release(); // Wenn beim Ausführen der SQL-Anweisung ein Fehler auftritt, werfen Sie einen Fehler, wenn (Fehler) Fehler werfen; console.log(Ergebnisse); konsole.log(Felder); }); }); } wählen(); Der obige Code fragt die Daten einer Datentabelle Die Kapselungsmethode verwendet // index.js // ... Ignorieren Sie den vorherigen Code, um einen MySQL-Verbindungspool zu erstellen. Funktion query(sql, params) { returniere neues Promise((lösen, ablehnen) => { pool.getConnection((err, Verbindung) => { //Bei fehlgeschlagener Verbindung einen Fehler melden if (err) return reject(err); // Holen Sie sich ein Verbindungsobjekt und rufen Sie die Abfragemethode auf, um die SQL-Anweisung auszuführen. // Führen Sie die SQL-Anweisungsabfrage aus. Der zweite Parameter ist der von der SQL-Anweisung benötigte Parameter. Dieser kann weggelassen werden. connection.query(sql, params, (errors, results, fields) => { // Verbindung freigeben connection.release(); // Wenn beim Ausführen der SQL-Anweisung ein Fehler auftritt, wird ein Fehler ausgegeben, if (Fehler) return reject(Fehler); Lösung (Ergebnisse); }); }); }); } Abfrage("Wählen Sie * aus Waren aus", null).dann((Ergebnis) => { console.log(Ergebnis); }); modul.exporte = { Abfrage, }; verwenden // Daten.js const index = erfordern("./index.js"); var sql = "Wählen Sie * aus Waren aus"; Index .query(sql, null) .then((Ergebnis) => { // irgendetwas tun … }) .catch((err) => { // Fehler console.log(fehler); }); Dadurch wird eine Schnittstelle für die Datenbank bereitgestellt, um SQL auszuführen. Verwenden Sie MySQL-TransaktionsverarbeitungIch werde nicht zu sehr ins Detail gehen, was MySQL-Transaktionen betrifft. Hier ist ein Link für Ihre Bequemlichkeit. MySQL-Transaktionsverarbeitung Kommen wir direkt zur Sache und verwenden // index.js // .... Teil des Codes zum Erstellen eines Pools /** * MySQL-Transaktionsverarbeitung * @param {Array} SQLS-SQL-Anweisung, die ausgeführt werden soll * @param {Array} Parameter, die den Parametern der obigen SQL-Anweisung entsprechen * @returns {Promise} gibt ein Promise zurück */ Funktion Transaktion (SQL, Parameter) { returniere neues Promise((lösen, ablehnen) => { pool.getConnection(Funktion (err, Verbindung) { // Verbindung fehlgeschlagen Promise gibt Fehler direkt zurück if (err) { Rückgabe ablehnen (Fehler); } // Wenn Anweisung und Parameternummer nicht übereinstimmen, gibt Promise direkt einen Fehler zurück, if (sqls.length !== params.length) { connection.release(); // Freigeben return reject(new Error("Die Anweisung stimmt nicht mit dem übergebenen Wert überein")); } // Ausführung der Transaktion starten connection.beginTransaction((beginErr) => { // Transaktion konnte nicht erstellt werden if (beginErr) { Verbindung.Freigabe(); Rückgabe ablehnen (BeginErr); } console.log("Starten Sie die Ausführung von Transaktionen, insgesamt " + sqls.length + " Anweisungen"); //Gibt ein Promise-Array zurück let funcAry = sqls.map((sql, index) => { gib ein neues Promise zurück((sqlResolve, sqlReject) => { const Daten = Parameter[Index]; Verbindung.Abfrage(sql, Daten, (sqlErr, Ergebnis) => { wenn (sqlErr) { gibt sqlResolve(sqlErr) zurück; } sqlReject(Ergebnis); }); }); }); //Verwende die Methode „all“, um den Status jedes darin enthaltenen Promise zu überprüfen. Promise.all(funcAry) .then((arrResult) => { // Wenn jede SQL-Anweisung erfolgreich ausgeführt wurde, kommt es zu diesem Punkt. Hier muss die Transaktion festgeschrieben werden, damit die vorherige SQL-Ausführung wirksam wird. // Die Transaktion festschreiben connection.commit(function (commitErr, info) { wenn (commitErr) { // Übermittlung der Transaktion fehlgeschlagen console.log("Übermittlung der Transaktion fehlgeschlagen: " + commitErr); // Transaktions-Rollback, zuvor ausgeführte SQL-Anweisungen sind ungültig connection.rollback(function (err) { if (err) console.log("Rollback fehlgeschlagen: " + err); Verbindung.Freigabe(); }); // Status des fehlgeschlagenen Versprechens zurückgeben return reject(commitErr); } Verbindung.Freigabe(); // Die Transaktion gibt das Ergebnis jeder SQL-Ausführung erfolgreich als Array-Struktur zurück: resolve(arrResult); }); }) .catch((Fehler) => { // Wenn eine der mehreren SQL-Anweisungen während der Ausführung einen Fehler meldet, führen Sie direkt ein Rollback durch connection.rollback(function () { console.log("SQL-Ausführung fehlgeschlagen: " + Fehler); Verbindung.Freigabe(); ablehnen(Fehler); }); }); }); }); }); } modul.exporte = { Transaktion, }; Danach müssen Sie nur noch diese Methode aufrufen, um die MySQL-Transaktion auszuführen // Daten.js const index = erfordern("./index.js"); var sqls = [ „Löschen von Waren, wobei Waren-ID = ?“, // Löschanweisung „Warensatz aktualisieren, Num = ?, wobei Waren-ID = ?;“, // Aktualisierungsanweisung]; var Parameter = [ [1], // parmas liegt im Array-Format vor und entspricht der SQL-Anweisung in SQLs? [5, 3], ]; Index .transaction(sqls, Parameter) .then((arrResult) => { // irgendetwas tun … }) .catch((err) => { // Fehler console.log(fehler); }); Dies ist das Ende dieses Artikels über die Implementierung der Knotenverbindungs-MySQL-Abfragetransaktionsverarbeitung. Weitere relevante Inhalte zur Knotenverbindungs-MySQL-Abfragetransaktionsverarbeitung finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Diskussion über die Browsing-Designmethode für Webseiteninhalte
>>: Detaillierte Erläuterung der MySQL-Datenbankisolationsebene und des MVCC
So installieren und konfigurieren Sie MySQL auf M...
Inhaltsverzeichnis Registrieren von Komponenten K...
Linux-Dateiberechtigungen Überprüfen wir zunächst...
Vorwort Projektanforderungen: Installieren Sie da...
Was ist NFS? Netzwerkdateisystem Eine Methode ode...
Inhaltsverzeichnis Warum optimieren? ? Wo soll ic...
Inhaltsverzeichnis 0. Was ist ein Modul 1.Modul l...
Ändern Sie die IP-Adresse der virtuellen Maschine...
<html> <Kopf> <meta http-equiv=&quo...
Inhaltsverzeichnis 1. Was ist Docker Compose und ...
Laden eines oder mehrerer Features <Vorlage>...
Dieser Artikel ist eine MySQL-Konfigurationsdatei...
Inhaltsverzeichnis 1. Datenbank USE auswählen 2. ...
Die erste Webseite, die ich entworfen habe, sieht...
Ohne weitere Umschweife werde ich den Code direkt...