Node.js中调用mysql存储过程示例


Posted in Javascript onDecember 20, 2014

例子仅在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, '张三');

Node.js中调用mysql存储过程示例

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的文件);

/**

 * Created with JetBrains WebStorm.

 * User: Meteoric_cry

 * Date: 12-12-28

 * Time: 上午00:18

 * To change this template use File | Settings | File Templates.

 */

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、运行示例程序;

Node.js中调用mysql存储过程示例

Javascript 相关文章推荐
jquery.ui.draggable中文文档(原文翻译)
Nov 15 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
Mar 26 Javascript
js通过指定下标或指定元素进行删除数组的实例
Jan 12 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
Jan 21 Javascript
微信小程序 sha1 实现密码加密实例详解
Jul 06 Javascript
AngualrJs清除定时器遇到的坑
Oct 13 Javascript
JS实现的ajax和同源策略(实例讲解)
Dec 01 Javascript
JS实现的简单分页功能示例
Aug 23 Javascript
vue 登录滑动验证实现代码
Aug 24 Javascript
angularJS实现不同视图同步刷新详解
Oct 09 Javascript
原生js拖拽实现图形伸缩效果
Feb 10 Javascript
vue动态设置页面title的方法实例
Aug 23 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
Dec 20 #Javascript
jQuery多媒体插件jQuery Media Plugin使用详解
Dec 19 #Javascript
jquery图片播放浏览插件prettyPhoto使用详解
Dec 19 #Javascript
js中匿名函数的创建与调用方法分析
Dec 19 #Javascript
浅谈Javascript中匀速运动的停止条件
Dec 19 #Javascript
浅谈Javascript如何实现匀速运动
Dec 19 #Javascript
Javascript添加监听与删除监听用法详解
Dec 19 #Javascript
You might like
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
php获取网页上所有链接的方法
2015/04/03 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
2020/10/27 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
jquery图形密码实现方法
2015/03/11 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
vue的diff算法知识点总结
2018/03/29 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
JS array数组检测方式解析
2020/05/19 Javascript
python列出目录下指定文件与子目录的方法
2015/07/03 Python
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
pycharm 安装JPype的教程
2019/08/08 Python
python缩进长度是否统一
2020/08/02 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
运动鞋、街头服装、手表和手袋的实时市场:StockX
2020/11/25 全球购物
房地产管理毕业生自荐信
2013/11/04 职场文书
社区包粽子活动方案
2014/01/21 职场文书
社区元宵节活动总结
2015/02/06 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL