nodejs+mysql

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值