
com.webapp.mybatis.helper.DaoAdapterHelper Maven / Gradle / Ivy
The newest version!
package com.webapp.mybatis.helper;
import java.util.concurrent.ConcurrentHashMap;
import org.apache.commons.lang3.ClassUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.webapp.mybatis.helper.SqlHelper.ColAndVal;
import com.webapp.utils.clz.ClzUtils;
public class DaoAdapterHelper {
private static final Logger logger = LoggerFactory.getLogger(DaoAdapterHelper.class);
protected static final ConcurrentHashMap cache = new ConcurrentHashMap<>();
// public static Class> getModelClz(String daoPkgs) throws ClassNotFoundException {
// String daoPkg = daoPkgs.substring(0, daoPkgs.lastIndexOf("."));
// return cache.get(daoPkg).getClz();
// }
public static String buildSql(String sql, String daoPkgs) throws ClassNotFoundException {
String daoPkg = daoPkgs.substring(0, daoPkgs.lastIndexOf("."));
if(!cache.contains(daoPkg)){
Class> daoClz = ClassUtils.getClass(daoPkg, true);
Class> modelClz = ClzUtils.interGeneric(daoClz);
if(modelClz == null) return null;
if(!cache.containsKey(modelClz.getName())){
ColAndVal cav = SqlHelper.handleColsAndVals(modelClz);
// cache.put(modelClz.getName(), tc);
cache.put(daoClz.getName(), cav);
}
}
if(sql.contains(SqlHelper.TABLE)){
sql = sql.replaceFirst(SqlHelper.daoReplace(SqlHelper.TABLE), cache.get(daoPkg).getTable());
}
if(sql.contains(SqlHelper.SEL_COLS)){
sql = sql.replaceFirst(SqlHelper.SEL_COLS, cache.get(daoPkg).getSelCols());
}
logger.info("sql:" + sql);
return sql;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy