实际例子
1.当有一串sql语句,里面有参数(参数用占位符$表示)
如
select * from test where id=$id and starttime=$starttime or nodeid=$nodeid
就有3个参数
我们现在要把参数取出来,并把占位符变成问号
2.
Pattern pattern = Pattern.compile("\\$(\\w+)");
String sql="select * from test where id=$id and starttime=$starttime or nodeid=$nodeid";
Matcher matcher = pattern.matcher(sql);
String sql2=sql;
List<String> params=new ArrayList<String>();
while(matcher.find()){
String group = matcher.group(0);
System.out.println(group);
params.add(matcher.group(1));
sql2=sql2.replace(group, "?");
}
System.out.println(sql2);
System.out.println(params);
输出:
$id
$starttime
$nodeid
select * from test where id=? and starttime=? or nodeid=?
[id, starttime, nodeid]