美文网首页
完整sql语句输出的工具类

完整sql语句输出的工具类

作者: 诗错亦染瑾 | 来源:发表于2017-07-11 16:30 被阅读8次

    不多说,上代码

    /**
     * author zz
     */
    
    public class SQLTool {
    
        /**
         * 去掉sql中的?号,返回执行的具体sql
         * @param sql
         * @param params
         * @return String
         */
        public String logSQL(String sql, Object[] params) {
    
            int _paramNum = 0;
            String _backSql = "";
            if (null != params)
                _paramNum = params.length;
            if (1 > _paramNum) {// 1 如果没有参数,说明是不是动态SQL语句
                _backSql = sql;
            } else {// 2 如果有参数,则是动态SQL语句
                StringBuffer _returnSQL = new StringBuffer();
                String[] _subSQL = sql.split("\\?");
                for (int i = 0; i < _paramNum; i++) {
                    if (null != params[i]) {
    
                        if (params[i] instanceof java.util.Date) {
                            _returnSQL
                                    .append(_subSQL[i])
                                    .append(" '")
                                    .append(this
                                            .util2sql((java.util.Date) params[i]))
                                    .append("' ");
                        } else if (params[i] instanceof String) {
                            _returnSQL.append(_subSQL[i]).append(" '")
                                    .append(params[i]).append("' ");
                        } else if (params[i] instanceof Integer) {
                            _returnSQL.append(_subSQL[i]).append(" ")
                                    .append(params[i]).append(" ");
                        }
                    }
                }
    
                if (_subSQL.length > params.length) {
                    _returnSQL.append(_subSQL[_subSQL.length - 1]);
                }
                _backSql = _returnSQL.toString();
            }
            return _backSql;
        }
    
        /**
         * 转换时间类  java.util.Date->java.sql.Date
         * @param fechaUtil
         * @return java.sql.Date
         */
        private java.sql.Date util2sql(java.util.Date fechaUtil) {
            java.sql.Date _SQL = new java.sql.Date(fechaUtil.getTime());
            return _SQL;
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:完整sql语句输出的工具类

          本文链接:https://www.haomeiwen.com/subject/mzjmhxtx.html