我目前正在編寫一個Java程序,它循環遍歷4000個XML文件的文件夾。提高SQL的速度從JDBC插入XML列(SQL Server)
使用for循環,它從每個文件中提取XML,將其分配給String'xmlContent',並使用PreparedStatement方法setString(2,xmlContent)將String插入存儲在SQL Server中的表中。
列'2'是XML類型的一個稱爲'數據'的列。
該過程起作用,但速度很慢。它每7秒向表格中插入約50行。
有沒有人有任何想法可以加快這個過程?
代碼:
{ ...declaration, connection etc etc
PreparedStatement ps = con.prepareStatement("INSERT INTO Table(ID,Data) VALUES(?,?)");
for (File current : folder.listFiles()){
if (current.isFile()){
xmlContent = fileRead(current.getAbsoluteFile());
ps.setString(1, current.getAbsoluteFile());
ps.setString(2, xmlContent);
ps.addBatch();
if (++count % batchSize == 0){
ps.executeBatch();
}
}
}
ps.executeBatch(); // performs insertion of leftover rows
ps.close();
}
private static String fileRead(File file){
StringBuilder xmlContent = new StringBuilder();
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String strLine = "";
br.readLine(); //removes encoding line, don't need it and causes problems
while ((strLine = br.readLine()) != null){
xmlContent.append(strLine);
}
fr.close();
return xmlContent.toString();
}