根据客户名-项目名-附件 这种形式创建文件夹存立面 进行判断有同名的文件后面+1 2 ...
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.LinkedHashMap;
import java.util.Map;
public class Main01 {
private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://<MySQL服务器ip地址>/<数据库名>";
private static final String USER = "<用户名>";
private static final String PASS = "<用户密码>";
private static final String QUERY_SQL = "select * from company";
private static final File BASE_DIR = new File("<你要保存的目录路径>");
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Class.forName(DRIVER);
Connection conn = DriverManager.getConnection(URL, USER, PASS);
Map<String, Integer> fileNameMap = new LinkedHashMap<String, Integer>();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(QUERY_SQL);
String orgFileName = null;
String fileName = null;
int idx = 0;
File file = null;
InputStream is = null;
OutputStream os = null;
final int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
int readCount = 0;
while (rs.next()) {
orgFileName = rs.getString("file_name");
fileName = String.format("%s-%s-%s", rs.getString("COMPANY_NAME"), rs.getString("branch_name"),
orgFileName);
if (!fileNameMap.containsKey(fileName)) {
fileNameMap.put(fileName, 0);
} else {
idx = fileNameMap.get(fileName) + 1;
fileNameMap.put(fileName, idx);
}
idx = fileNameMap.get(fileName);
if (idx > 0) {
int index = fileName.lastIndexOf(".");
String ext = fileName.substring(index + 1);
fileName = String.format("%s(%d).%s", fileName.substring(0, index), idx, ext);
}
file = new File(BASE_DIR, fileName);
is = rs.getBinaryStream("doc_binary");
os = new FileOutputStream(file);
while ((readCount = is.read(buffer, 0, bufferSize)) > 0) {
os.write(buffer, 0, readCount);
os.flush();
}
os.close();
is.close();
}
rs.close();
stmt.close();
conn.close();
}
}