package rfx.server.util.sql;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
import org.springframework.jdbc.core.simple.SimpleJdbcCall;
import rfx.server.configs.ConfigManager;
public class SqlTemplateUtil {
static Map<String, String> mapSqlTpl = new HashMap<>();
static {
try {
String str = ConfigManager.getConfigAsText(ConfigManager.SQL_STRING_TEMPLATE_FILE);
String[] sqlStrTokens = str.split(";");
for (String sqlStrToken : sqlStrTokens) {
String[] toks = sqlStrToken.split("=>");
if(toks.length == 2){
String sqlKey = toks[0].trim();
String sqlVal = toks[1].trim().replace("\t", " ").replace("\n", " ");
//System.out.println(sqlKey);System.out.println(sqlVal);
mapSqlTpl.put(sqlKey, sqlVal);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getSql(String sqlKey){
String sql = mapSqlTpl.get(sqlKey);
if(sql == null){
throw new IllegalArgumentException("Not found value for "+sqlKey + " in file "+ConfigManager.SQL_STRING_TEMPLATE_FILE);
}
return sql;
}
public static SimpleJdbcCall getProcedureJdbcCall(DataSource ds, String spKey){
return new SimpleJdbcCall(ds).withProcedureName(getSql(spKey));
}
}