简介
在我们日常开发看日志的时候总是需要把MyBatis-Plus的sql语句复制到数据库中执行,这样就非常麻烦,所以写了这个工具,可以自动填充sql语句,方便我们复制到数据库中执行。代码其实很简单就是使用正则表达式替换一下。
代码
public class SQLParamReplaceUtil {
public static void main(String[] args) {
try (Scanner sc = new Scanner(System.in)) {
while (true) {
System.out.println("请输入要替换的sql语句:");
/**
* eg: SELECT * FROM user WHERE name = ? AND age = ? AND item_ids IN (?, ?, ?, ?, ?)
*/
String sql = sc.nextLine();
System.out.println("请输入要替换的参数:");
/**
* eg: John Doe(String), 30(Integer), 1(Integer), 2(Integer), 3(Integer), 4(Integer), 5(Integer)
*/
String params = sc.nextLine();
// 将输入的参数按照 ', ' 进行分割放到参数数组中
String[] paramArr = params.split(", ");
// 处理参数数组进行替换
for (String param : paramArr) {
// 去除参数后面的参数类型 eg: John Doe(String) -> John Doe
param = param.replaceAll("\\(([^)]+)\\)", "");
sql = sql.replaceFirst("\\?", "\\'" + param + "\\'");
}
sql = sql + ";";
System.out.println("处理之后的SQL语句为: " + sql);
}
}
}
}