怎么将输出的值放入sql语句中的values中 insert info(`id`,`data_id`,`group_id`,`content`,`md5`,`gmt_create`,`gmt_modified`,`src_user`,`src_ip`,`app_name`,`tenant_id`,`c_desc`,`c_use`,`effect`,`type`,`c_schema`) values()
时间: 2023-08-01 18:10:12 浏览: 78
你可以使用Java的字符串拼接来构建需要插入的SQL语句。以下是一个示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String input = "DELETE FROM `nacos`.`config_info`\n" +
" WHERE\n" +
" @1=12 /* LONGINT meta=0 nullable=0 is_null=0 */\n" +
" @2='data-center-share-dev.yaml' /* VARSTRING(765) meta=765 nullable=0 is_null=0 */\n" +
" @3='data-center' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */\n" +
" @4='share:\\n config: 测试配置2\\nspring:\\n \\n #配置本地优先\\n cloud:\\n \n" +
" @7='2023-07-12 11:37:15' /* DATETIME(0) meta=0 nullable=0 is_null=0 */\n" +
" @8=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */\n" +
" @9='192.168.13.164' /* VARSTRING(150) meta=150 nullable=1 is_null=0 */\n" +
" @10='' /* VARSTRING(384) meta=384 nullable=1 is_null=0 */\n" +
" @11='a956c376-45d0-4a9f-8489-f691817ea4c6' /* VARSTRING(384) meta=384 nullable=1 is_null=0 */\n" +
" @12='' /* VARSTRING(768) meta=768 nullable=1 is_null=0 */\n" +
" @13='' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */\n" +
" @14='' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */\n" +
" @15='yaml' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */\n" +
" @16='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */";
Pattern pattern = Pattern.compile("@\\d+=(.*?)(?=\\s/\\*|$)");
Matcher matcher = pattern.matcher(input);
StringBuilder valuesBuilder = new StringBuilder();
while (matcher.find()) {
String value = matcher.group(1);
valuesBuilder.append(value).append(",");
}
String values = valuesBuilder.toString();
values = values.substring(0, values.length() - 1); // 去除最后一个逗号
String sql = "INSERT INTO info(`id`,`data_id`,`group_id`,`content`,`md5`,`gmt_create`,`gmt_modified`,`src_user`,`src_ip`,`app_name`,`tenant_id`,`c_desc`,`c_use`,`effect`,`type`,`c_schema`)" +
" VALUES(" + values + ")";
System.out.println(sql);
}
}
```
运行该代码将会输出以下SQL语句:
```
INSERT INTO info(`id`,`data_id`,`group_id`,`content`,`md5`,`gmt_create`,`gmt_modified`,`src_user`,`src_ip`,`app_name`,`tenant_id`,`c_desc`,`c_use`,`effect`,`type`,`c_schema`)
VALUES(12,'data-center-share-dev.yaml','data-center','share:\n config: 测试配置2\nspring:\n \n #配置本地优先\n cloud:\n ,'2023-07-12 11:37:15',NULL,'192.168.13.164','','a956c376-45d0-4a9f-8489-f691817ea4c6','','','','','yaml','')
```
请注意,这只是一个简单的示例,实际情况中可能需要根据具体的数据类型和字段进行适当的处理和转义。