So rufen Sie eine gespeicherte SQL-Prozedur mit Node.js auf und erhalten die Ergebnisse

PHPz
Freigeben: 2023-04-07 10:09:17
Original
1192 Leute haben es durchsucht

Node.js ist als serverseitige JavaScript-Ausführungsumgebung zu einer sehr beliebten Technologie geworden. Für Node.js-Entwickler ist der Aufruf gespeicherter Datenbankprozeduren eine effektive Möglichkeit, komplexe Datenbankabfragen durchzuführen. Doch wie ruft Node.js gespeicherte SQL-Prozeduren im Vergleich zu anderen Programmiersprachen korrekt auf?

In diesem Artikel erfahren Sie, wie Sie mit Node.js gespeicherte SQL-Prozeduren aufrufen und die Ergebnisse abrufen.

Mit der Datenbank verbinden

Bevor Sie Node.js zum Herstellen einer Verbindung mit der Datenbank verwenden, müssen Sie den entsprechenden Node.js-Datenbanktreiber installieren. In diesem Artikel wird die Bibliothek mysqljs als Beispiel verwendet. Zuerst müssen Sie diese Bibliothek in das Node.js-Projekt einführen: mysqljs库为例,首先需要在Node.js项目中引入这个库:

var mysql = require('mysql');
Nach dem Login kopieren

在连接数据库之前,需要先创建一个MySQL连接池。

var pool  = mysql.createPool({
  connectionLimit : 10,
  host            : 'example.org',
  user            : 'bob',
  password        : 'secret',
  database        : 'my_db'
});
Nach dem Login kopieren

请确保将hostuserpassworddatabase替换为正确的数据库连接信息。在连接池成功创建后,即可使用以下代码连接数据库。

pool.getConnection(function(err, connection) {
  // 在此处处理连接错误
  connection.query('SELECT * FROM customers', function(err, rows) {
    // 在此处处理查询结果
    connection.release(); // 释放连接
  });
});
Nach dem Login kopieren

在释放连接之前,需要注意一件事情:使用MySQL存储过程时,无需释放连接。因为存储过程会自动关闭连接。在下一个示例中,你将了解如何调用存储过程。

调用存储过程

假设你有一个名为getCustomers的存储过程,其参数列表如下:

  • in_start:以零为基础的页面编号。
  • in_amount:要显示的记录数。
  • out_total_rows:总行数。
  • out_total_pages:总页数。

以下示例演示了如何使用Node.js调用存储过程。

pool.getConnection(function(err, connection) {
  // 在此处处理连接错误
  connection.query('CALL getCustomers(?, ?, @total_rows, @total_pages)', [0, 10], function(err, rows) {
    if (err) throw err;

    // 执行第二个查询以获取返回值
    connection.query('SELECT @total_rows AS total_rows, @total_pages AS total_pages', function(err, rows) {
      if (err) throw err;

      var totalRows = rows[0][0].total_rows;
      var totalPages = rows[1][0].total_pages;

      console.log('Total rows: ' + totalRows);
      console.log('Total pages: ' + totalPages);

      connection.release();
    })
  });
});
Nach dem Login kopieren

在第一行中,我们调用了存储过程。请注意,我们使用?代替存储过程中的每个参数。在例子中,我们为存储过程传递了两个参数:010@total_rows@total_pagesrrreee

Bevor Sie eine Verbindung zur Datenbank herstellen, müssen Sie einen MySQL-Verbindungspool erstellen.

rrreee

Bitte stellen Sie sicher, dass Sie host, user, password und database durch die korrekten Datenbankverbindungsinformationen ersetzen. Nachdem der Verbindungspool erfolgreich erstellt wurde, können Sie den folgenden Code verwenden, um eine Verbindung zur Datenbank herzustellen.

rrreee

Bevor Sie die Verbindung freigeben, müssen Sie Folgendes beachten: Bei Verwendung gespeicherter MySQL-Prozeduren ist es nicht erforderlich, die Verbindung freizugeben. Weil die gespeicherte Prozedur die Verbindung automatisch schließt. Im nächsten Beispiel erfahren Sie, wie Sie eine gespeicherte Prozedur aufrufen. 🎜🎜Aufrufen einer gespeicherten Prozedur🎜🎜Angenommen, Sie haben eine gespeicherte Prozedur namens getCustomers mit der folgenden Parameterliste: 🎜
  • in_start: nullbasierte Seitenzahl .
  • in_amount: Die Anzahl der anzuzeigenden Datensätze.
  • out_total_rows: Gesamtzahl der Zeilen.
  • out_total_pages: Gesamtzahl der Seiten.
🎜Das folgende Beispiel zeigt, wie eine gespeicherte Prozedur mit Node.js aufgerufen wird. 🎜rrreee🎜In der ersten Zeile rufen wir die gespeicherte Prozedur auf. Beachten Sie, dass wir ? anstelle jedes Parameters in der gespeicherten Prozedur verwenden. Im Beispiel haben wir zwei Parameter an die gespeicherte Prozedur übergeben: 0 und 10. @total_rows und @total_pages sind die beiden Ausgabeparameter der gespeicherten Prozedur. Nachdem die erste Abfrage ausgeführt wurde, müssen wir eine weitere SQL-Abfrage ausführen, um die Werte mit den Ausgabeparametern zu erhalten. Nachdem Sie die Ausgabeparameter erhalten haben, können Sie die Werte bearbeiten. 🎜🎜Fazit🎜🎜Die Verwendung von Node.js zum Herstellen einer Verbindung zur Datenbank und zum Aufrufen gespeicherter Prozeduren erfordert eine sorgfältige Handhabung des Verbindungspoolings und der Verbindungsfreigabe. Es ist nicht erforderlich, die Verbindung während der Ausführung der gespeicherten Prozedur manuell zu schließen oder freizugeben. Anhand des obigen Beispiels kann die gespeicherte SQL-Prozedur korrekt ausgeführt und die Ergebnisse erzielt werden. 🎜

Das obige ist der detaillierte Inhalt vonSo rufen Sie eine gespeicherte SQL-Prozedur mit Node.js auf und erhalten die Ergebnisse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!