/**
* 获取sql语句中所有占位参数
* @return
*/
public static Map<String, Object> allArgsParamMap(String ...sqlStr){
Map<String, Object> resultMap = new HashMap<>();
Pattern p = Pattern.compile("\\{(.*?)\\}");
for(String sql : sqlStr) {
if(StringUtils.isNotEmpty(sql)){
Matcher m = p.matcher(sql);
while(m.find()) {
resultMap.put(m.group(1)+"",null);
}
}
}
return resultMap;
}
m.group(1)代表排除匹配字符,为0的话代表包含匹配字符
public static void main(String[] args) throws UnsupportedEncodingException {
String sqlA ="select * from sys_user where id ={id} and name ={userName}";
Map<String, Object> map = allArgsParamMap(sqlA);
for (Map.Entry<String, Object> entry : map.entrySet()) {
System.out.println(entry.getKey()+"="+entry.getValue());
}
}