package Freesky.M8.MM.Common.Util;
import java.util.Iterator;
import java.util.Map;
import org.apache.log4j.Logger;
/**
* SQL组装类,由spring来装配SQL
* @author jinjianping
*
*/
public class SqlQuery {
private static Logger log = Logger.getLogger(SqlQuery.class);
private String sqlStart = null;
private String sqlEnd = null;
private Map keyValue = null;
public Map getKeyValue() {
return keyValue;
}
public void setKeyValue(Map keyValue) {
this.keyValue = keyValue;
}
public String getSqlStart() {
return sqlStart;
}
public void setSqlStart(String sqlStart) {
this.sqlStart = sqlStart;
}
public String getSqlEnd() {
return sqlEnd;
}
public void setSqlEnd(String sqlEnd) {
this.sqlEnd = sqlEnd;
}
/**
* 供外部调用,用来产生SQL的方法当map中的key与sql映射文件中的key一致时,添加条件
* @param sqlQuery
* @param map
* @return
*/
public static String genSqlStr(SqlQuery sqlQuery, Map map) {
StringBuffer sb = new StringBuffer();
sb.append(sqlQuery.getSqlStart() + "\n");
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
String key = (String) it.next();
if (map.get(key) != null && !map.get(key).toString().equals("")
&& sqlQuery.keyValue.containsKey(key)) {
String cond = (String)map.get(key);
String sql = sqlQuery.keyValue.get(key).toString();
sb.append(sql.replace("#", cond.replaceAll("'", "")) + "\n");
}
}
sb.append(sqlQuery.getSqlEnd() + "\n");
log.debug("SQL QUERY " + sb.toString());
return sb.toString();
}
}