动态sql替换参数中的占位符号,正则表达式
/**
* 替换sql中的占位参数
* */
public static  String getSql(String indexImpl, LinkedHashMap<String,String> params){
//匹配#{*}格式的占位参数
Pattern pattern = Patternpile("#\\{.*?\\}");
Matcher matcher=pattern.matcher(indexImpl);
while(matcher.find()){
String up();
int i = indexImpl.indexOf(paraStr);
String placeAll("#\\{", "").replaceAll("}","").trim();
if(params!=null&&i!=-1){
sql语句替换表中内容//参数防sql注⼊处理
Codec ORACLE_CODEC = new OracleCodec();
String  param= der().encodeForSQL(ORACLE_CODEC, (paramName));
//String  (paramName);
if(param==null){
String reg="(<ifNotNULL)[\\s]+(column=\""+paramName+"\")[\\s]*(>)((?!</).|\\r|\\n)*(</ifNotNULL)[\\s]+(column=\""+paramName+"\")[\\s]*(>)";                  indexImpl = im().replaceAll(reg, "");
}else{
place(paraStr,"'"+param+"'");
}
}
}
Pattern pattern1 = Patternpile("\\$\\{.*?\\}");
Matcher matcher1=pattern1.matcher(indexImpl);
while(matcher1.find()){
String up();
int i = indexImpl.indexOf(paraStr);
String placeAll("\\$\\{", "").replaceAll("}","").trim();
if(params!=null&&i!=-1){
String  param= (paramName);
if(param==null){
String reg="(<ifNotNULL)[\\s]+(column=\""+paramName+"\")[\\s]*(>)((?!</).|\\r|\\n)*(</ifNotNULL)[\\s]+(column=\""+paramName+"\")[\\s]*(>)";                  indexImpl = im().replaceAll(reg, "");
}else{
place(paraStr,param);
}
}
}
return  indexImpl;
}
/**
* sql查询条件处理
* @param str
* @param map
* @return
*/
public static String trimParam(String str, Map<String, String> map) {
if (str == null) {
return null;
}
for (String key : map.keySet()) {
String reg="(<ifNotNULL)[\\s]+(column=\""+key+"\")[\\s]*(>)((?!</).|\\r|\\n)*(</ifNotNULL)[\\s]+(column=\""+key+"\")[\\s]*(>)";
String value = (key);
if (StringUtils.isEmpty(value)) {
str = im().replaceAll(reg, "");
}
}
}
str = placeAll("(<ifNotNULL)[\\s]+(column=\")[a-zA-Z_0-9]*(\")[\\s]*(>)", "");        str = placeAll("(</ifNotNULL)[\\s]+(column=\")[a-zA-Z_0-9]*(\")[\\s]*(>)", "");        return str;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。