Node.js를 사용하여 SQL 저장 프로시저를 호출하고 결과를 얻는 방법

PHPz
풀어 주다: 2023-04-07 10:09:17
원래의
1237명이 탐색했습니다.

Node.js는 서버측 JavaScript 실행 환경으로서 매우 인기 있는 기술이 되었습니다. Node.js 개발자의 경우 데이터베이스 저장 프로시저를 호출하는 것은 복잡한 데이터베이스 쿼리를 수행하는 효과적인 방법입니다. 그러나 Node.js는 다른 프로그래밍 언어와 비교하여 어떻게 SQL 저장 프로시저를 올바르게 호출합니까?

이 글에서는 Node.js를 사용하여 SQL 저장 프로시저를 호출하고 결과를 얻는 방법을 소개합니다.

데이터베이스에 연결

Node.js를 사용하여 데이터베이스에 연결하기 전에 해당 Node.js 데이터베이스 드라이버를 설치해야 합니다. 이 문서에서는 mysqljs 라이브러리를 예로 들어 보겠습니다. 먼저 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

데이터베이스에 연결하기 전에 MySQL 연결 풀을 생성해야 합니다.

rrreee

host, user, passworddatabase를 올바른 데이터베이스 연결 정보로 바꿔주세요. 연결 풀이 성공적으로 생성되면 다음 코드를 사용하여 데이터베이스에 연결할 수 있습니다.

rrreee

연결을 해제하기 전에 한 가지 주의할 점이 있습니다. MySQL 저장 프로시저를 사용할 때는 연결을 해제할 필요가 없다는 것입니다. 저장 프로시저가 자동으로 연결을 종료하기 때문입니다. 다음 예제에서는 저장 프로시저를 호출하는 방법을 알아봅니다. 🎜🎜저장 프로시저 호출🎜🎜다음 매개변수 목록이 있는 getCustomers라는 저장 프로시저가 있다고 가정해 보세요. 🎜
  • in_start: 0부터 시작하는 페이지 번호 .
  • in_amount: 표시할 레코드 수입니다.
  • out_total_rows: 총 행 수.
  • out_total_pages: 총 페이지 수입니다.
🎜다음 예는 Node.js를 사용하여 저장 프로시저를 호출하는 방법을 보여줍니다. 🎜rrreee🎜첫 번째 줄에서는 저장 프로시저를 호출합니다. 저장 프로시저의 각 매개변수 대신 ?를 사용합니다. 이 예에서는 010이라는 두 개의 매개변수를 저장 프로시저에 전달했습니다. @total_rows@total_pages는 저장 프로시저의 두 가지 출력 매개변수입니다. 첫 번째 쿼리가 실행된 후 출력 매개변수가 포함된 값을 가져오려면 또 다른 SQL 쿼리를 실행해야 합니다. 출력 매개변수를 얻은 후 해당 값에 대해 작업을 수행할 수 있습니다. 🎜🎜결론🎜🎜Node.js를 사용하여 데이터베이스에 연결하고 저장 프로시저를 호출하려면 연결 풀링 및 연결 해제를 신중하게 처리해야 합니다. 저장 프로시저를 실행하는 동안 수동으로 연결을 닫거나 해제할 필요가 없습니다. 위의 예를 사용하면 SQL 저장 프로시저가 올바르게 실행되고 결과를 얻을 수 있습니다. 🎜

위 내용은 Node.js를 사용하여 SQL 저장 프로시저를 호출하고 결과를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿