不多说,上代码
/**
* 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;
}
}
网友评论