nodejs连接mysql并执行sql语句,mysql连接池
安装mysql模块:
npm install mysql --save
来看个例子:
const mysql = require("mysql")
// mysql中的createConnection方法 可以创建连接
const conn = mysql.createConnection({
host:"localhost",//连接地址
user:"root",//用户
password:"123456",//密码
port:'3306',//端口
database:"user_test",//要连接的数据库
})
// 建立连接
conn.connect();
// 建立一个变量 存储sql语句
let sql = 'select * from user';
// 连接 有一个query方法 用来执行sql语句
conn.query(sql,(err,result) => {
if(err) throw err;
console.log(result);
})
// 断开/关闭链接 执行完sql语句就可以关闭连接
conn.end();
结果:
[ RowDataPacket { id: 1, name: 'eric', city: '广州', sex: 2 }, RowDataPacket { id: 2, name: '小明', city: '北京', sex: 2 }, RowDataPacket { id: 3, name: '小花', city: '上海', sex: 1 }, RowDataPacket { id: 4, name: '小美', city: '深圳', sex: 1 }, RowDataPacket { id: 5, name: '小小', city: '北京', sex: 1 }, RowDataPacket { id: 6, name: '小小2', city: '广州', sex: 1 }, RowDataPacket { id: 9, name: '小小', city: '北京', sex: 1 }, RowDataPacket { id: 10, name: '小小', city: '北京', sex: 1 }, RowDataPacket { id: 11, name: '小花', city: '北京', sex: 1 } ]
另外,sql语句传参的方式:
const mysql = require("mysql")
// mysql中的createConnection方法 可以创建连接
const conn = mysql.createConnection({
host:"localhost",//连接地址
user:"root",//用户
password:"123456",//密码
port:'3306',//端口
database:"user_test",//要连接的数据库
})
// 建立连接
conn.connect();
// 建立一个变量 存储sql语句 ?是一个占位符 用来传参
let sql = 'select * from user where id = ?';
// 连接 有一个query方法 用来执行sql语句 如果传参就要启用第二个参数 第二个参数如果是单个可以直接传字符串 多个就用数组 我们这里直接用数组
conn.query(sql,[10],(err,result) => {
if(err) throw err;
console.log(result);
})
// 断开/关闭链接 执行完sql语句就可以关闭连接
conn.end();
结果:
[ RowDataPacket { id: 10, name: '小小', city: '北京', sex: 1 } ]
以上的方式每一个用户都会建立一个连接,如果用户少还可以,如果高达上百万,那么对应创建上百万的连接,这对系统是一个很大的开销,那么mysql连接池可以解决这样的问题:

连接池的使用:
const mysql = require("mysql")
// 创建连接池
const pool = mysql.createPool({
connectionLimit:10,//同时创建连接的最大连接数
host:"localhost",//连接地址
user:"root",//用户
password:"123456",//密码
port:'3306',//端口
database:"user_test",//要连接的数据库
})
// 连接池有一个方法是 getConnection
pool.getConnection((err,conn) => {
// 第二个参数 conn就是是获取到的连接
if(err) throw err;
// 建立一个sql语句
let sql = 'select * from user where id = ?';
// 执行sql语句
conn.query(sql,[10],(err,result) => {
// 不管是否 报错 首先将连接 释放掉
conn.release()
if(err) throw err;
console.log(result);
})
})
。

浙公网安备 33010602011771号