All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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