Java 实现方式
package com.virgil.application.util;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/**
* @author virgil.Wang
* @date 2019/8/23 9:32
*/
public class SqlUtils {
private static final String PREFIX = "'";
private static final String SUFFIX = "'";
private static final String COMMA = ",";
public static void main(String[] args) {
try {
sqlColumnsConvert("D:\\sqlSpace\\member.txt", "D:\\sqlSpace\\memberConvert.txt", false);
} catch (Exception e) {
System.out.println("convert fail :" + e);
}
System.out.println("Successful !");
}
/**
* 文本格式均为:.txt
* sql列拼接逗号或前后单引号
* WARNING : 在完成后删除最后一个逗号
* @param sourceFilePath 源文件路径
* @param targetFilePath 输出文件路径
* @param numberFlag 对应的表的字段是否为数值型
*/
public static void sqlColumnsConvert(String sourceFilePath, String targetFilePath, boolean numberFlag) {
List<String> sqlColumnCovertResult = new ArrayList<>();
/* 读取数据 */
try {
File sourceFile = new File(sourceFilePath);
FileInputStream sourceFileInputStream = new FileInputStream(sourceFile);
InputStreamReader inputStreamReader = new InputStreamReader(sourceFileInputStream, "UTF-8");
BufferedReader br = new BufferedReader(inputStreamReader);
String lineTxt = null;
while ((lineTxt = br.readLine()) != null) {
if (numberFlag) {
lineTxt = lineTxt + COMMA;
} else {
lineTxt = PREFIX + lineTxt + SUFFIX + COMMA;
}
sqlColumnCovertResult.add(lineTxt);
}
br.close();
} catch (Exception e) {
System.err.println("read errors :" + e);
}
/* 输出数据 */
try {
File targetFile = new File(targetFilePath);
// 如果目标文件存在,则删除
if (targetFile.exists() && targetFile.isFile()) {
targetFile.delete();
}
FileOutputStream fileOutputStream = new FileOutputStream(targetFile);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
BufferedWriter bw = new BufferedWriter(outputStreamWriter);
for (String name : sqlColumnCovertResult) {
bw.write(name);
bw.newLine();
}
bw.close();
} catch (Exception e) {
System.err.println("write errors :" + e);
}
}
}
Java代码可以实现SQL拼接功能,一开始使用起来心态比较好,觉得自己用代码来实现了手动拼接,简化了流程。
后来同事给我推荐了另一种实现方式,我认为比代码操作起来更加直白方便,具体如下:
- 工具: Notepad ++
- 方式:正则表达式
- 需求:有skuCode的Excel列表,需要给每个skuCode加单引号
'
和,
。 - 原始数据:
- 目标数据:
- 操作方式
在Notepad++ 页面中,输入原始数据,然后Ctrl+F
,点击“替换”
- 说明:
查找对象:\r\n
表示空格
替换为:','
表示替换后的目标值
注:注意首位的字符串拼接。