node-mysql
1.1、node-mysql包简介
是什么 ?:a Node.js driver for MySQL
开发语言:Node.js
源码仓库:https://github.com/felixge/node-mysql
1.2、通过包管理器安装node-mysql
包管理器安装命令
npmnpm install mysql --save
yarnyarn add mysql
1.3、导入node-mysql模块
var mysql = require('mysql');
1.4、var connection = mysql.createConnection(String uri);

创建一个连接,传入要连接的数据库的URI

示例:

var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');
1.5、var connection = mysql.createConnection(Object options);

创建一个连接。

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
});
1.6、connection.connect(function(error){ });

示例:

connection.connect(function(err) {
  if (err) {
    console.error('error connecting: ' + err.stack);
    return;
  }

  console.log('connected as id ' + connection.threadId);
});
1.7、connection.query(String sql, function(error, rows){ })

执行SQL语句。

示例:

connection.query('SELECT 1', function(err, rows) {
  // connected! (unless `err` is set)
});

SELECT 1用于测试数据库是否连接成功。

1.8、connection.end(function(error) { })

结束连接。

示例:

connection.end(function(err) {
  // The connection is terminated now
});
1.9、connection.destroy()

结束连接。connection.destroy()connection.end(Function callback)唯一的区别是一个有没有回调,另一个有回调。

1.10、创建连接池

如果每次操作都是先创建一个连接,然后执行SQL,最后关闭连接。 那么这样对于高响应是不利的,因为频繁的创建和销毁连接也是要消耗时间和资源的, 所以,就像线程一样,我们也可以把连接缓存下来,放到一个池子里,这个池子就叫做数据库连接池。 有了这个池子,我们就不用每次都打开和关闭连接了,用的时候直接从池子里拿一个空闲的连接去执行SQL就行了。 这样大大提高了执行效率。