首頁 >web前端 >js教程 >Node.js中呼叫mysql預存程序範例_node.js

Node.js中呼叫mysql預存程序範例_node.js

WBOY
WBOY原創
2016-05-16 16:25:282740瀏覽

範例只在windows下測試通過,沒有放在linux下測試。如有問題,可以電郵給我~

1、安裝node.js、mysql,此處略(自行搜尋吧)…;

2、建立一個名為test的資料庫,然後建立一個名為user_info的表(僅供測試)…

這裡假定mysql使用的使用者名稱為root,密碼為123456

對應的mysql如下:

複製程式碼 程式碼如下:

/**
* 建立名為test的資料庫
*/
DROP DATABASE IF EXISTS test;
CREATE DATABASE test;
USE test;
 
/**
* 建立user_info表
*/
DROP TABLE IF EXISTS `user_info`;

CREATE TABLE `user_info` (
  `userId` int(10) NOT NULL AUTO_INCREMENT,
  `userName` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`userId`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

/**
* 插入三筆記錄
*/
INSERT INTO user_info VALUES (NULL, '張一'), (NULL, '張二'), (NULL, '張三');

3、建立預存程序(寫的很冗餘,故意的…正好學習語法>_

複製程式碼 程式碼如下:

DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`proc_simple`$$
CREATE PROCEDURE proc_simple(IN uid INT(10), OUT uName VARCHAR(2), OUT totalCount INT)
BEGIN

DECLARE str_name VARCHAR(20);

SET @str_name = '';
SET totalCount = 0;
        SELECT COUNT(1),userName INTO totalCount,@str_name FROM user_info WHERE userId = uid;       
        SET uName = @str_name;
        SELECT uName, totalCount;
       
    END$$
DELIMITER ;

4、寫程式進行呼叫(假定存為名為sql.js的檔案);

複製程式碼 程式碼如下:

/**
 * 使用 JetBrains WebStorm 建立。
 * 使用者:Meteoric_cry
 * 日期:28年12月12日
 * 時間:上午00:18
 * 若要變更此模板,請使用檔案|設定 |檔案模板。
 */
var mysql = require('mysql');

var connection = mysql.createConnection({
    host : 'localhost',
    port : 3306,
    user : 'root',
    password : '123456',
    database : 'test',
    charset : 'UTF8_GENERAL_CI',
    debug : false
});

connection.connect();

connection.query('CALL proc_simple(1, @a, @b);', function(err, rows, fields) {
    if (err) {
       throw err;
    }

    var results = rows[0];
    var row = results[0];
    console.log("userName:",row.uName, "  count:", row.totalCount);
});

connection.end();

5、運行範例程式;

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn