将sql语句中的表名加表前缀

网友投稿 1144 2022-11-21

将sql语句中的表名加表前缀

将sql语句中的表名加表前缀

将sql语句中的表名加表前缀

问题描述

将 insert into table (item1, item2, itsm3) values (value1, value2, value3) 语句中的表名加前缀,但是insert 与into,into 与table之间的空格数量不确定到底有多少

实现方案

利用正则表达式进行替换

创建字符串转换工具类

package com.wy.mycode.algorithm.string;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * @author HelloWorld * @create 2022/6/25 08:50 */public class SwitchStringUtil { /** * @description 按指定规则替换字符传 * @author HelloWorld * @create 2022/6/25 08:55 * @param str 待转换的字符串 * @param rule 转换规则 * @param target 转换子串 * @return java.lang.String */ public String switchStringByRule(String str, String rule, String target) { Pattern pattern = Pattern.compile(rule); Matcher matcher = pattern.matcher(str); return matcher.replaceFirst(target); }}

实现按规则增加表名前缀的方法

package com.wy.mycode.algorithm.string;/** * @author HelloWorld * @create 2022/6/25 10:09 */public class AlterTableName { /** 匹配sql语句中的 insert into 规则*/ private static final String SWITCH_RULE = "insert \\s*into \\s*"; /** * @description * @author HelloWorld * @create 2022/6/25 10:24 * @param sql 需要转换的sql * @param prefix 表名前缀 * @return java.lang.String */ private String doAlterTableName(String sql, String prefix) { SwitchStringUtil switchStringUtil = new SwitchStringUtil(); String target = "insert into " + prefix; return switchStringUtil.switchStringByRule(sql, SWITCH_RULE, target); } public static void main(String[] args) { String str = "insert into table (item1, item2) values (value1, value2)"; AlterTableName alterTableName = new AlterTableName(); System.out.println(alterTableName.doAlterTableName(str, "PD_")); }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:全排列 II (Python)
下一篇:Python教程: __init__.py 作用详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~