1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /**
- * 数据库工具,使用数据库连接池获取连接,执行查询,之后将连接返回连接池。
- */
- "use strict";
- let configFile = require('../include/commons').CONFIG_FILE;
- let config = require('../resources/config/' + configFile);
- let log = require('./log');
- let crypto = require('crypto');
- class DbUtil {
- constructor() {
- }
- static execQuery(pool, options) {
- if (config.showSQL) log.info(options.sql);
- pool.getConnection(function (err, connection) {
- let sql = options['sql'];
- let args = options['args'];
- let handler = options['handler'];
- if (err) {
- return handler(err, null);
- }
- // 执行查询
- if (args) {
- connection.query(sql, args, function (err, results) {
- if (err) {
- log.error("Execute SQL failed, arguments: " + args + ", sql: " + sql);
- return handler(err, results);
- }
- handler(null, results);
- });
- } else {
- connection.query(sql, function (err, results) {
- if (err) {
- log.error("Execute SQL failed: " + sql);
- return handler(err, results);
- }
- handler(null, results);
- });
- }
- // 返回连接池
- connection.release(function (err) {
- if (err) {
- log.error('Database - release connection failed, ' + err);
- }
- });
- });
- }
- /**
- * 为字符串数组生成一个Hash值,为保证唯一性,生成前先对数组进行排序。
- *
- * @param stringArray
- */
- static stringArrayHash(stringArray) {
- let sortedArr = stringArray.sort();
- return crypto.createHash("sha1").update(sortedArr.join(",")).digest('hex');
- }
- }
- module.exports = DbUtil;
|