首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

Java字符串操作 批量转换SQL语句 把Insert转成Delete

发布网友 发布时间:2022-04-20 21:14

我来回答

5个回答

懂视网 时间:2022-05-03 15:20

/** * 工具-字符串-转换Sql查询IN中使用的格式 * 效果:a,b==>‘a‘,‘b‘ * @param str * @return */ public String strToDbin(String str){ return String.format("‘%s‘", StringUtils.join(str.split(","),"‘,‘")); } /** * 工具-字符串-转换为Sql查询分组IN格式 * 解决:Sql中in超过1000个报错问题 * @param field 列名,例如:ID * @param strIns 待拆分的字符串 a,b,c * @return field in(‘a‘) and field in(‘b‘) and field in(‘c‘) */ public String strToSqlGroupIn(String field,String strIns) { int groupNum = 1; String groupInArr = new String(); StringBuffer buffer=new StringBuffer(); if(StringUtils.isNoneBlank(strIns)){ String[] array=strIns.split(","); //数组总长度 int len=array.length; //分组数 int groupCount=len/groupNum; for(int k=0;k<groupCount;k++){ groupInArr=new String(); for(int i=(k*groupNum);i<(k*groupNum+groupNum);i++){ if(i>k*groupNum){ groupInArr+=","; } groupInArr+=array[i].trim(); } if(k>0){ buffer.append(" and "); } buffer.append(String.format(" %s in(%s)",field,strToDbin(groupInArr))); } if(len%groupNum != 0){ //未整除 groupInArr=new String(); //处理最后一组数据 for(int j=(groupCount*groupNum);j<len;j++){ if(j>groupCount*groupNum){ groupInArr+=","; } groupInArr+=array[j].trim(); } if(buffer.length()>0){ buffer.append(" and "); } buffer.append(String.format(" %s in(%s)",field,strToDbin(groupInArr))); } } return buffer.toString(); }

Java字符串转Sql语句In格式工具方法

标签:rto   none   i++   spl   join   split   bin   turn   mat   

热心网友 时间:2022-05-03 12:28

public class Test {
public static void main(String[] args) {
String sql = "insert into student (a,b,c,d)values(1,'e',2,'f')";
System.out.println(convert(sql));
sql = "insert into SPSTRM.trm_order_accept_control (PRODUCT_ID, SERV_ID, SLA_GRADE, REGION_ID, DEAL_ID) values (444000011, 5, 200003880, 3, 500000487)";
System.out.println(convert(sql));
}

public static String convert(String sql) {
String result = "DELETE FROM ";
sql = sql.toUpperCase();
sql = sql.replace("INSERT INTO ", "");
String table = sql.substring(0, sql.indexOf(" "));
sql = sql.replace(table, "").replace("'", "");
String[] values = sql.split("VALUES");
String[] k = values[0].replace("(", "").replace(")", "").split(",");
String[] v = values[1].replace("(", "").replace(")", "").split(",");
result += table + " WHERE ";
int length = k.length;
for (int i = 0; i < length; i++) {
result += k[i] + "=" + "'" + v[i] + "'";
if (i < length - 1) {
result += " AND ";
}
}
return result;
}
}

热心网友 时间:2022-05-03 13:46

这是一些字符串的截取问题,然后再拼接起来。可以用字符串的substring()和split()两个方法处理。
至于字符串类型的值要加单引号这个问题不必纠结,你把所有类型的值也都加上单引号,不会报错且更安全。如把“insert into student (a,b,c,d)values(1,'e'2,'f')”这句转化成“delete from student where a='1' and b='e' and c='2' and d='f'”

热心网友 时间:2022-05-03 15:21

把它放到Excel里,利用Excel函数转换!这得你自己探索了!这种方法肯定是行得,只提供方法了!这事我以前干过,加油哦!

热心网友 时间:2022-05-03 17:12

这是说些什么

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com