Maison  >  Article  >  interface Web  >  Comment appeler une procédure stockée SQL à l'aide de Node.js et obtenir les résultats

Comment appeler une procédure stockée SQL à l'aide de Node.js et obtenir les résultats

PHPz
PHPzoriginal
2023-04-07 09:32:061171parcourir

Node.js, en tant qu'environnement d'exécution JavaScript côté serveur, est devenu une technologie très populaire. Pour les développeurs Node.js, l'appel de procédures stockées de base de données est un moyen efficace d'effectuer des requêtes de base de données complexes. Cependant, comment Node.js appelle-t-il correctement les procédures stockées SQL par rapport aux autres langages de programmation ?

Cet article expliquera comment utiliser Node.js pour appeler des procédures stockées SQL et obtenir les résultats.

Connectez-vous à la base de données

Avant d'utiliser Node.js pour vous connecter à la base de données, vous devez installer le pilote de base de données Node.js correspondant. Cet article prend comme exemple la bibliothèque mysqljs. Tout d'abord, vous devez introduire cette bibliothèque dans le projet Node.js : mysqljs库为例,首先需要在Node.js项目中引入这个库:

var mysql = require('mysql');

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

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

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

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

在释放连接之前,需要注意一件事情:使用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();
    })
  });
});

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

Avant de vous connecter à la base de données, vous devez créer un pool de connexion MySQL.

rrreee

Veuillez vous assurer de remplacer host, user, password et database par les informations de connexion à la base de données correctes. Une fois le pool de connexions créé avec succès, vous pouvez utiliser le code suivant pour vous connecter à la base de données.

rrreee

Avant de libérer la connexion, il y a une chose à noter : lors de l'utilisation de procédures stockées MySQL, il n'est pas nécessaire de libérer la connexion. Parce que la procédure stockée fermera automatiquement la connexion. Dans l’exemple suivant, vous apprendrez comment appeler une procédure stockée. 🎜🎜Appel d'une procédure stockée🎜🎜Supposons que vous ayez une procédure stockée appelée getCustomers avec la liste de paramètres suivante : 🎜
  • in_start : numéro de page de base zéro .
  • in_amount : Le nombre d'enregistrements à afficher.
  • out_total_rows : nombre total de lignes.
  • out_total_pages : nombre total de pages.
🎜L'exemple suivant montre comment appeler une procédure stockée à l'aide de Node.js. 🎜rrreee🎜Dans la première ligne, nous appelons la procédure stockée. Notez que nous utilisons ? à la place de chaque paramètre dans la procédure stockée. Dans l'exemple, nous avons passé deux paramètres à la procédure stockée : 0 et 10. @total_rows et @total_pages sont les deux paramètres de sortie de la procédure stockée. Une fois la première requête exécutée, nous devons exécuter une autre requête SQL pour obtenir les valeurs avec les paramètres de sortie. Après avoir obtenu les paramètres de sortie, vous pouvez opérer sur les valeurs. 🎜🎜Conclusion🎜🎜L'utilisation de Node.js pour se connecter à la base de données et appeler des procédures stockées nécessite une gestion minutieuse du regroupement de connexions et de la libération des connexions. Il n'est pas nécessaire de fermer ou de libérer manuellement la connexion pendant l'exécution de la procédure stockée. En utilisant l'exemple ci-dessus, la procédure stockée SQL peut être exécutée correctement et les résultats obtenus. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn