sql拼接工具,主要是在控制台生成sql拼接语句,这样做的好处,在自己的表中一些默认字段不需要导入,有些数据是别人给的,而且也只是部分动态字段,我们不能一个一个的insert进去,也不可能直接导入某张表中,所以,需要借助工具类来生成一个insert所有数据。
这个也是我从另一个博主那边看到的,但是呢忘记保存链接了,若原博主瞅见了,原谅,感谢。
首先我们可能会得到这样一个文件
字段间的值,都是由英文逗号隔开,
我们把字段的名给去掉,只剩下字段的值,然后保存为uft-8格式,否则中文就会乱码,csv,txt,包括xml之间的转换,百度一下就会有,我就不提供了。
这边的话用的是messageFormat,可以的话,可以百度一下。打印语句中得到的扫描出来的是一一对应的
@SpringBootTest
public class Test {
@org.junit.Test
public void txt() {
BufferedReader br;
StringBuffer sb = new StringBuffer("insert into dome (id,variable,value,set_time) values ");
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream("C:\\Users\\EDZ\\Desktop\\sys_config.csv")));
String str = null;
String sqlStr = "({0}, ''{1}'', ''{2}'',''{3}'',''测试''),";
//id
int id;
String variable;
String value;
String set_time;
while (br.ready()) {
//初始化id
id = 1;
str = br.readLine().trim();
//若为空行,跳过操作
if (str == null || str.length() <= 0) {
continue;
}
//通过空格分割
String splitByBlankStrs[] = str.split(",");
variable = splitByBlankStrs[0];
value = splitByBlankStrs[1];
set_time = splitByBlankStrs[2];
sb.append(MessageFormat.format(sqlStr, id, variable, value, set_time));
sb.append("\r\n");
id++;
}
System.out.println(sb);
} catch (Exception e) {
e.printStackTrace();
}
}
}
我这个是测试类,所以加了一个@SpringbootTest,如果不是话,@Test也不用加,直接 psvm 回车
执行之后,我得到的就是如下图:
这是粘贴到数据库的样子,然后就可以用了