Node.js中调用mysql存储过程示例
作者:bea
例子仅在windows下测试通过,没有放在linux下测试。如有问题,可以电邮给我~ 1、安装node.js、mysql,此处略(自行搜索吧)…; 2、创建一个名为test的数据库,然后建一张名为user_info的表(仅供测试)… 这里假定mysql使用的用户名为root,密码为123456 相应的mysql如下: 代码如下: /** * 创建名为test的数据库 */ DROP DATABASE IF EXISTS test; CREATE DATABASE
例子仅在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的文件);
代码如下:
/**
* 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、运行示例程序;
有用 | 无用
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的文件);
代码如下:
/**
* 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、运行示例程序;
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 使用JavaScript链式编程实现模拟Jquery函数
- 使用jQuery简单实现模拟浏览器搜索功能
- 编写简单的jQuery提示插件
- 不使用ajax实现无刷新提交表单
- webapp框架AngularUI的demo改造之路
- 浅析webapp框架AngularUI的demo
- AngularJS基础知识
- javascript关于继承的用法汇总
- jquery实现将获取的颜色值转换为十六进制形式的方法
- jQuery的text()方法用法分析
- jQuery中click事件的定义和用法
- javascript中String对象的slice()方法分析
- javascript中Number对象的toString()方法分析
- javascript中parseInt()函数的定义和用法分析
- JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
- node.js解决获取图片真实文件类型的问题
- javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
- Node.js实现批量去除BOM文件头
- javascript删除一个html元素节点的方法