写在前面:大家好!我是
晴空๓
。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教。我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油,冲鸭!
用知识改变命运,用知识成就未来!加油 (ง •̀o•́)ง (ง •̀o•́)ง
文章目录
- 简介
- 代码
简介
在我们日常开发看日志的时候总是需要把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 Doeparam = param.replaceAll("\\(([^)]+)\\)", "");sql = sql.replaceFirst("\\?", "\\'" + param + "\\'");}sql = sql + ";";System.out.println("处理之后的SQL语句为: " + sql);}}}
}