文章目录

简介

 在我们日常开发看日志的时候总是需要把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);
            }
        }
    }
}
03-08 08:59