是什么 ? | : | a Node.js driver for MySQL |
开发语言 | : | Node.js |
源码仓库 | : | https://github.com/felixge/node-mysql |
包管理器 | 安装命令 |
---|---|
npm | npm install mysql --save |
yarn | yarn add mysql |
var mysql = require('mysql');
创建一个连接,传入要连接的数据库的URI
。
示例:
var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');
创建一个连接。
options
对象中的属性:
属性 | 说明 |
---|---|
host | 主机,比如localhost、192.168.0.1 |
port | 端口,比如3306 |
user | 用户名,比如root |
password | 密码 |
database | 数据库名 |
charset | 字符集 |
timezone | 时区,默认是local |
debug | 开启Debug模式,打印日志,默认是false |
示例:
var connection = mysql.createConnection({
host : 'localhost',
port : '3307',
user : 'root',
password : 'root',
database : 'sonar',
debug : true
});
示例:
connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
console.log('connected as id ' + connection.threadId);
});
执行SQL
语句。
示例:
connection.query('SELECT 1', function(err, rows) {
// connected! (unless `err` is set)
});
SELECT 1
用于测试数据库是否连接成功。
结束连接。
示例:
connection.end(function(err) {
// The connection is terminated now
});
结束连接。connection.destroy()
与connection.end(Function callback)
唯一的区别是一个有没有回调,另一个有回调。
如果每次操作都是先创建一个连接,然后执行SQL,最后关闭连接。 那么这样对于高响应是不利的,因为频繁的创建和销毁连接也是要消耗时间和资源的, 所以,就像线程一样,我们也可以把连接缓存下来,放到一个池子里,这个池子就叫做数据库连接池。 有了这个池子,我们就不用每次都打开和关闭连接了,用的时候直接从池子里拿一个空闲的连接去执行SQL就行了。 这样大大提高了执行效率。