sql拼接工具

sql拼接工具,主要是在控制台生成sql拼接语句,这样做的好处,在自己的表中一些默认字段不需要导入,有些数据是别人给的,而且也只是部分动态字段,我们不能一个一个的insert进去,也不可能直接导入某张表中,所以,需要借助工具类来生成一个insert所有数据。

这个也是我从另一个博主那边看到的,但是呢忘记保存链接了,若原博主瞅见了,原谅,感谢。
首先我们可能会得到这样一个文件
sql拼接工具_第1张图片
字段间的值,都是由英文逗号隔开,
我们把字段的名给去掉,只剩下字段的值,然后保存为uft-8格式,否则中文就会乱码,csv,txt,包括xml之间的转换,百度一下就会有,我就不提供了。
sql拼接工具_第2张图片
这边的话用的是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 回车
执行之后,我得到的就是如下图:

sql拼接工具_第3张图片

sql拼接工具_第4张图片

这是粘贴到数据库的样子,然后就可以用了

你可能感兴趣的:(MySQL,sql,数据库,database)