Node.js使用MySQL的连接池
2015-07-17 22:55
621 查看
使用Nodejs+MySQL肯定比PHP和MySQL的组合更适合做服务器端的开发。
使用Nodejs你会从他的异步行为中获益良多。比如,提升性能,你无须在从已有的MySQL数据库迁移到其他的NoSQL数据库获得性能的提升。
Nodejs如何使用MySQL
Nodejs要连接MySQL,可以使用Nodejs的MysQL驱动来实现。比如,我们这里使用“node-mysql”连接数据库。我们使用下面的方式来连接数据库:
首先,我们需要使用nodejs的包管理工具(npm)安装mysql的驱动。命令行如下:
现在,要在js文件中使用mysql,添加下面的代码到你的文件中:
接下来,我们就可以使用这个模块来连接MySQL数据库。当然要连接数据库需要指定MySQL Server的host name,用户名和密码等。还有其他的很多选项可以设置,比如数据库的时区、socketPath、和本地地址等。
那么,下面的代码会为你建立一个新的连接。
使用这个连接对象,我们可以像下面一样查询数据库。我们可以使用connection.escape()方法防止sql注入。
最后,我们可以用两种方法关闭连接。用connection.end或者connection.destroy。
下面的表达式会确保所有队列中的查询在数据库连接关闭前都会被执行。请注意,这里有一个回调函数。
下面的表达式会立即关闭数据库连接。并且没有回调函数或者触发任何事件。
Nodejs使用MysQL的连接池
使用连接池可以帮助我们更好的管理数据库连接。数据库连接池可以限制连接的最大数量,复用已有的连接等。
首先,我们需要创建一个连接池:
其次,我们可以从创建的连接池中获取到一个我们需要的连接:
使用回调函数的参数connection来查询数据库。最后使用connection.realease()方法释放数据库连接。
执行多条查询语句
为了安全起见,默认情况下是不允许执行多条查询语句的。要使用多条查询语句的功能,就需要在创建数据库连接的时候打开这一功能:
这一功能打开以后,你就可以像下面的例子一样同时使用多条查询语句:
使用Nodejs你会从他的异步行为中获益良多。比如,提升性能,你无须在从已有的MySQL数据库迁移到其他的NoSQL数据库获得性能的提升。
Nodejs如何使用MySQL
Nodejs要连接MySQL,可以使用Nodejs的MysQL驱动来实现。比如,我们这里使用“node-mysql”连接数据库。我们使用下面的方式来连接数据库:
首先,我们需要使用nodejs的包管理工具(npm)安装mysql的驱动。命令行如下:
npm install musql
现在,要在js文件中使用mysql,添加下面的代码到你的文件中:
var mysql = require('mysql');
接下来,我们就可以使用这个模块来连接MySQL数据库。当然要连接数据库需要指定MySQL Server的host name,用户名和密码等。还有其他的很多选项可以设置,比如数据库的时区、socketPath、和本地地址等。
var connection = mysql.createConnection({ host : “hostName”, user : “username”, password: “password” });
那么,下面的代码会为你建立一个新的连接。
connection.connect();
使用这个连接对象,我们可以像下面一样查询数据库。我们可以使用connection.escape()方法防止sql注入。
connection.query(“use database1”); var strQuery = “select * from table1”; connection.query( strQuery, function(err, rows){ if(err) { throw err; }else{ console.log( rows ); } });
最后,我们可以用两种方法关闭连接。用connection.end或者connection.destroy。
下面的表达式会确保所有队列中的查询在数据库连接关闭前都会被执行。请注意,这里有一个回调函数。
connection.end(function(err){ // Do something after the connection is gracefully terminated. });
下面的表达式会立即关闭数据库连接。并且没有回调函数或者触发任何事件。
connection.destroy( );
Nodejs使用MysQL的连接池
使用连接池可以帮助我们更好的管理数据库连接。数据库连接池可以限制连接的最大数量,复用已有的连接等。
首先,我们需要创建一个连接池:
var mysql = require('mysql'); var pool = mysql.createPool({ host : “hostName”, user : “username”, password: “password” });
其次,我们可以从创建的连接池中获取到一个我们需要的连接:
pool.getConnection(function(err, connection){
});
使用回调函数的参数connection来查询数据库。最后使用connection.realease()方法释放数据库连接。
pool.getConnection(function(err, connection){connection.query( “select * from table1”, function(err, rows){
if(err) {
throw err;
}else{
console.log( rows );
}
});
connection.release();
});
执行多条查询语句
为了安全起见,默认情况下是不允许执行多条查询语句的。要使用多条查询语句的功能,就需要在创建数据库连接的时候打开这一功能:
var connection = mysql.createConnection( { multipleStatements: true } );
这一功能打开以后,你就可以像下面的例子一样同时使用多条查询语句:
connection.query('select column1; select column2; select column3;', function(err, result){ if(err){ throw err; }else{ console.log(result[0]); // Column1 as a result console.log(result[1]); // Column2 as a result console.log(result[2]); // Column3 as a result } });
相关文章推荐
- mysql处理海量数据时的一些优化查询速度方法
- MySQL导入及常用命令
- Node.js使用MySQL的连接池
- mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法
- Navicat连接远程MySQL数据库
- MySQL学习笔记之<MySQL数据类型>
- mysql的MyISAM 和 InnoDB 的区别?优化MYSQL数据库的方法?
- MySQL 性能优化的最佳20多条经验分享
- mysql 二级索引
- mysql大表设计
- mysql事务和锁InnoDB
- 理解MySQL--索引与优化(转载)
- 配置MySQL免安装版(zip)
- mysql 存储过程
- mysqlmysql_upgrade 报错
- mysql大整数溢出报错--新手入门教程 20150717
- MySQL客户端工具 SQLyog
- mysql 联合查询的时候 统计不知道 为何不准
- MySql中case when then 的使用
- Mysql下优化SQL的一般步骤