zoukankan      html  css  js  c++  java
  • 4.node中封装数据库的操作的方法

    1.单句数据库操作方法:

    /*单语句sql*/
    function mysqlOperate(sql, callback) {
        var con = mysql.createConnection(conf.c7);
        con.connect(function (err) {
            if (err) {
                console.log('mysqlDBOperate------getConnection--1--,err:' + err);
                callback(err, con);
            } else {
                con.query(sql, function (err, rows) {
                    if (err)
                        console.log('mysqlDBOperate---- update db returned,err:' + err + ',sql:' + sql);
                    callback(err, rows);
                    con.end();
                });
            }
        });
    }

    2.事物sql

    /*事物sql*/
    function mysqlTransact(sqls, callback) {
        var con = mysql.createConnection(conf.c7);
        con.connect(function (err) {
            if (err) {
                console.log('mysqlTransact------getConnection--1--,err:' + err);
                callback(err);
            } else {
                var index = 0;
                con.beginTransaction(function (err) {
                    if (err) {
                        con.end();
                        callback(err);
                    } else {
                        trans(sqls, 0, function (err) {
                            console.log('trans complete,err:' + err);
                            con.end();
                            callback(err);
                        });
                    }
    
                    function trans(transql, index, callback) {
                        if (index >= transql.length) {
                            con.commit(function (err) {
                                if (err)
                                    con.rollback();
                                callback(err);
                            });
                        } else {
                            con.query(transql[index], function (err, rows) {
                                if (err) {
                                    con.rollback();
                                    callback(err, rows);
                                } else {
                                    index++;
                                    trans(transql, index, callback);
                                }
                            });
                        }
                    }
    
                });
            }
        });
    }

    3.格式化化sql的方法

    /**
     * * 字符串占位符替换
     * @return {[type]} [description]
     */
    String.prototype.format = function(){
        if(arguments.length==0) return this;
        var temp=new Array();
        var arg = arguments;
        for(var i=0;i<arguments.length;i++)
        temp.push(arguments[i])
        var i=0
        return(this.replace(/{d+}/g,function(a){return temp[i++]}))
    };

    4.sql格式化代码的伪代码

    var sql = "select * from u_user_info where id = {0}";
    sql = sql.format(id);//这里的id为变量

  • 相关阅读:
    简时——alpha冲刺任务九(5.7)
    简时——alpha冲刺任务八(5.6)
    SE_Work4_软件案例分析
    SE_Work3_结队项目
    随机生成器——起源
    SE_Work2_交点个数
    SE_Work1_阅读构建之法&项目管理实践
    SE_Work0_回顾与展望
    OO_Unit4_UML模型化设计
    OO_Unit3_JML规格模式
  • 原文地址:https://www.cnblogs.com/Nick-Hu/p/9473389.html
Copyright © 2011-2022 走看看