1.createConnection
创建一个model.js文件
model.js
//mysql 是一个第三方的数据库模块,使用前需要安装 npm i mysql
const mysql = require('mysql')
// 连接 mysql 服务器
const connection = mysql.createConnection({
host: '127.0.0.1',
port: '3306',
user: 'root',
password: ''
})
//执行SQl
connection.query(sql, function (err, result) {
err // 错误信息
result // 结果
})
// 销毁连接,由于 JS 是异步的,所以当前代码会在执行 SQL 之前就销毁了连接
connection.destroy()
用 createConnection 创建 Mysql 连接,每执行一次 connection.query 都是一个全新的连接,会造成一个资源的极大浪费,降低性能。
2.mysql.createPool 连接池+封装query
连接池是另外的一种执行方法,它一次性的创建了多个连接,然后根据客户端的查询,自动的 分发、复用、管理 这些连接。
model.js
const mysql = require('mysql')
// 连接池:创建多个连接、复用与分发连接
const pool = mysql.createPool({
host: '127.0.0.1',
port: '3306',
user: 'root',
password: ''
})
// 随机分配一个连接
pool.query(sql, function (err, result) {undefined
}
// 封装
static query = function(sql,callback){
pool.getConnection(function(err,connection){
connection.query(sql,function(err,results){
callback(err, results) // 结果回调
// 释放连接资源 ,跟 connection.destroy() 不同,它是销毁
connection.release()
}
})
})
}
先对连接池总结这些,以后还会慢慢补充!