求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   模型库  
会员   
 


AI 智能化软件测试方法与实践
5月23-24日 上海+在线



人工智能.机器学习TensorFlow
5月22-23日 北京



图数据库与知识图谱
5月22-23日 北京
 
 

mysql教程
MySQL快速学习入门
MySQL是什么
MySQL安装
MySQL示例数据库
MySQL导入示例数据库
MySQL基础教程
MySQL查询数据
MySQL WHERE语句
MySQL插入数据
MySQL更新表数据
MySQL删除表数据
MySQL创建与删除数据库
MySQL创建表
MySQL修改表结构
MySQL重命名表
MySQL数据类型
高级部分
MySQL技巧
MySQL存储过程
MySQL视图
MySQL触发器
MySQL管理
MySQL全文搜索
MySQL函数
应用程序连接
MySQL+Node.js连接和操作
Python+MySQL连接和操作
 
 

Node.js+MySQL调用存储过程
1096 次浏览
14次  

在本教程中,您将学习如何从Node.js应用程序中调用MySQL中的存储过程。

调用存储过程的步骤与执行查询的步骤类似,如下所示:

连接到MySQL数据库服务器,请参考:http://lib.uml.com.cn/ebook/mysql/mysql24-1.asp

通过执行CALL spName语句来调用存储过程。spName是存储过程的名称。

关闭数据库连接。

调用MySQL存储过程示例

为了演示,我们创建一个新的存储过程filterTodo,以根据completed字段的值来查询todos表中的行。

use todoapp;

DELIMITER $$

CREATE PROCEDURE `filterTodo`(IN done BOOLEAN)
BEGIN
SELECT * FROM todos WHERE completed = done;
END$$

DELIMITER ;

存储过程filterTodo根据done参数返回todos表中的行。 如果done参数为true,则返回所有已完成的todos,否则返回未完成的todos。

在MySQL中调用一个存储过程,可以使用CALL语句。 例如,要调用filterTodo存储过程,请执行以下语句:

CALL filterTodo(true);

该语句返回以下结果集:

mysql> CALL filterTodo(true);
+----+-----------------------------------------------+-----------+
| id | title | completed |
+----+-----------------------------------------------+-----------+
| 4 | It should work perfectly | 1 |
| 6 | 现在学习一次插入多行记录(by www.yiibai.com) | 1 |
| 7 | It should work perfectly | 1 |
+----+-----------------------------------------------+-----------+
3 rows in set

Query OK, 0 rows affected

以下storedproc.js程序调用filterTodo存储过程并返回结果集:

let mysql = require('mysql');
let config = require('./config.js');

let connection = mysql.createConnection(config);

let sql = `CALL filterTodo(?)`;

connection.query(sql, true, (error, results, fields) => {
if (error) {
return console.error(error.message);
}
console.log(results[0]);
});

connection.end();

请注意,该程序使用存储数据库信息的config.js模块:

let config = {
host : 'localhost',
user : 'root',
password: '123456',
database: 'todoapp'
};

module.exports = config;

在CALL语句中,我们使用占位符(?)将数据传递给存储过程。

当我们在连接对象上调用query()方法时,我们将done参数的值作为query()方法的第二个参数传递。

下面,我们来运行storedproc.js程序,如下所示 -

F:\worksp\mysql\nodejs\nodejs-connect>node storedproc.js
openssl config failed: error:02001003:system library:fopen:No such process
[ RowDataPacket { id: 4, title: 'It should work perfectly', completed: 1 },
RowDataPacket { id: 6, title: '现在学习一次插入多行记录(by www.yiibai.com)', completed: 1 },
RowDataPacket { id: 7, title: 'It should work perfectly', completed: 1 } ]

程序按预期显示3行。

在本教程中,您已经学习了如何从Node.js程序中调用MySQL中的存储过程。


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



1096 次浏览
14次
 捐助