npm i mysql@2.15
基础实例
增删改查
const mysql = require("mysql");
//创建连接信息
var conn = mysql.createConnection({
host:"localhost",
post:"3306",
user:"root",
password:"root",
database:"test"
});
//连接
conn.connect(function (err) {
if (err) {
console.log("连接失败")
}else{
console.log("连接成功")
}
})
//增删改查同理
conn.query("select * from user",function (err,result,filed) {
if (err) {
console.log("错误优先级回调");
}else{
console.log(result);//查询的信息,
console.log(filed);//表中的所有字段
}
})
//增加多条数据
conn.query("insert into user (id,name) values ?",[a],function (err,result) {
if (err) {
console.log("错误优先级回调");
}else{
console.log(result);//查询的信息,
//console.log(filed);//表中的所有字段
}
})
连接池
连接池会创建连接 自动提交
const mysql = require("mysql");
//创建连接池连接
var poll = mysql.createPool({
host:"localhost",
post:"3306",
user:"root",
password:"root",
database:"test",
connectionLimit:10//连接池连接数量
});
//1.随机哪一条数据
function tran(sql,callback) {
//获取一条链接
poll.getConnection(function (err,conn) {
if (err) {
console.log("获取连接失败");
}else{
//拿到连接之后,吧自动事务提交转化为手动事务提交
conn.beginTransaction(function (err) {
if (err) {
console.log("切换失败");
}else {
//书写sql语句
var arr=[];
sql.forEach(function (s) {
let p1=new Promise(function (resolve,reject) {
conn.query(s.sql,s.params,function (err) {
if (err) {
reject("失败");
conn.rollback(function (err) {
if (err) {
console.log("回滚失败");
conn.release();
}else{
console.log("回滚成功");
callback(null,1)
conn.release();
}
})
}else{
resolve("执行完毕");
console.log("执行成功");
}
})
})
arr.push(p1);
})
Promise.all(arr).then(function (data) {
conn.commit(function (err) {
if (err) {
console.log("提交失败");
conn.release();
}else{
console.log("提交成功");
callback(true,2)
conn.release();
}
})
}).catch(function (err) {
conn.rollback(function (err) {
if (err) {
console.log("回滚失败");
conn.release();
}else{
console.log("回滚成功");
callback(null,1)
conn.release();
}
})
})
}
})
}
})
}
exports.tran=tran