替换SQL中# #,并填充值,例:
select * from aa where bb= #bb# and cc= #cc# and dd = #dd# order by ee desc
将sql语句中的##替换为数组[1,2,3]中真实值,变为一条可执行SQL
private static String convertString(String sql ,String[] arr){
StringBuilder sb = new StringBuilder();
int count =0 ;
boolean firstFlag =false ;
for (char c : sql.toCharArray()) {
if (c == '#' ){
if (firstFlag){
if (count<arr.length){
sb.append(arr[count]);
count++;
}
}
firstFlag = !firstFlag ;
} else if (!firstFlag) {
sb.append(c);
}
}
return null == sb ? "" : sb.toString();
}
public class Test1 {
public static void main(String[] args) throws MagicParseException, MagicException, MagicMatchNotFoundException {
String sql = "select * from aa where bb= #bb# and cc= #cc# and dd = #dd# order by ee desc";
String[] arr={"1","2","3"};
sql = convertString(sql,arr);
System.out.println(sql)
}
}
输出结果为
select * from aa where bb= 1 and cc= 2 and dd = 3 order by ee desc