nodejs拼接SQL实现快速调用得简单例子

nodejs拼接SQL实现快速调用得简单例子

var sqlfilter = {};
//数据格式,select情况,insert update delete 语法同理
//自用得写的比较个人化可能用模块更简单点把
var sql={
	function:'select',
	main:'select * from user',
	//where条件
	where:{
		username:
		password:
	}
	//分页条件
	limit:{
		page:
		limit:
	}
	
	
}
sqlfilter.builder = function(filters) {
    filters.reqdata = []
    filters.statement = ''

    switch (filters.function) {
        case 'select':
            //进行查询
            var whereStr = ''
            var limitStr = ''
            for (key in filters.where) {
                whereStr = whereStr + key + '=' + '?' + ' ' + 'and '
                filters.reqdata.push(filters.where[key])
            }
            whereStr = whereStr + '1=1 '
            if (filters.limit.page) {
                var limitStr = 'limit ' + String((filters.limit.page - 1) * filters.limit.limit) + ',' + String(filters.limit.limit)

            }
            filters.statement = filters.main + ' where ' + whereStr + limitStr
            console.log(filters)
            return (filters)
            break
        case 'insert':
            //插入
            var insertStr = '('
            for (key in filters.insert) {

                insertStr = insertStr + key + ','
                filters.reqdata.push(filters.insert[key])
            }

            insertStr = insertStr.substr(0, insertStr.length - 1)
            insertStr = insertStr + ')' + ' values('
            for (key in filters.insert) {

                insertStr = insertStr + '?' + ','

            }
            insertStr = insertStr.substr(0, insertStr.length - 1)
            insertStr = insertStr + ')'
            filters.statement = filters.main + ' ' + insertStr;

            return (filters)
            break;

        case 'update':
	    //更新
            var updateStr = ' set '
            var whereStr = ''
            for (key in filters.update) {
                updateStr = updateStr + key + '=?' + ' ' + ', '
                filters.reqdata.push(filters.update[key])
            }
            for (key in filters.where) {
                whereStr = whereStr + key + '=' + '?' + ' ' + 'and '
                filters.reqdata.push(filters.where[key])
            }
            whereStr = whereStr + '1=1 '
            updateStr = updateStr.substr(0, updateStr.length - 2) + ' '
            filters.statement = filters.main+updateStr + 'where ' + whereStr
            return (filters);
            break
        case 'delete':
          
            var whereStr = ''
            var limitStr = ''
            for (key in filters.where) {
                whereStr = whereStr + key + '=' + '?' + ' ' + 'and '
                filters.reqdata.push(filters.where[key])
            }
            whereStr = whereStr + '1=1 '
            filters.statement = filters.main + ' where ' + whereStr + limitStr
            console.log(filters)
            return (filters)
            break
        default:
            break;



    }
}

module.exports=sqlfilter
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值