/**
* 将以特殊符号为分隔的字符串分割,去除特殊符号,并加入集合
* 目前只支持去除";",如原字符为"001;002;003",则返回的集合元素为:[001],[002],[003]
*
* @param sourceStr
* @return Collection
*/
public static Collection filterStringWithSpeciaCharacterToCollection(
String sourceStr) {
Collection target = new ArrayList();
if (isNullOrBlank(sourceStr))
return target;
String tempStr = null;
int begin = 0;
int end = sourceStr.length();
while (sourceStr.indexOf(";", begin) != -1) {
tempStr = sourceStr.substring(begin, sourceStr.indexOf(";", begin));
target.add(tempStr);
begin = sourceStr.indexOf(";", begin) + 1;
}
return target;
}
===================================================================
/**
* 获得执行SQL
*
* @param monitorJobsDTO
* @return
*/
private String getExecSql(MonitorJobsDTO monitorJobsDTO) {
// 获得执行SQL变量值
String execSqlVar = monitorJobsDTO.getExecSqlVar();
// 获得执行SQL
String execResultSql = monitorJobsDTO.getExecResultSql();
// 判断执行SQL变量值是否为空,如果不为空则
if (StrUtil.isNotEmpty(execSqlVar)) {
// 获得参数集合
Collection collection = StrUtil
.filterStringWithSpeciaCharacterToCollection(execSqlVar);
// 将参数集合转化为数组
Object[] objArr = collection.toArray();
for (int i = 0; i < objArr.length; i++) {
Object object = objArr[i];
// 查看执行sql中是否包含?符号
if (execResultSql.contains("?")) {
// 填充执行SQL中的参数?
execResultSql = execResultSql.replaceFirst("\\?",
object.toString());
}
}
}
return execResultSql;
}