我需要填充500个CSV文件,每个文件有400-500行。但CSV文件可在example.com/report.csv.gz
在线获取。因此,每个csv文件都是压缩的,并且是与URL的连接。
所以,我正在使用
in = new BufferedReader(new InputStreamReader(new GZIPInputStream(connection.getInputStream())));
首先解压缩以获取CSV数据,然后我在每行使用PreparedStatement
来构建mySQL数据库。但这需要很长时间(只有14个CSV大约需要20秒)。
因此,正如其他一些关于更快填充方法的帖子所建议的那样,我想使用LOAD DATA INFILE。
有人可以帮我处理代码吗?因为LOAD DATA INFILE用于文件,我有一个存储所有CSV数据的变量。我们非常欢迎任何其他建议。
感谢。
while ((inputLine = in.readLine()) != null){
html+=inputLine; // Variable to store the CSV <---
String[] rowItems = inputLine.split(",");
String insertTableSQL = "INSERT INTO tableX"
+ "(a, b, c, d, e, F, g, h, i, j, k, l, m) VALUES"
+ "(?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement preparedStatement = conn.prepareStatement(insertTableSQL);
for(int i = 0 ; i < rowItems.length; i++){
preparedStatement.setString(i+1, rowItems[i]);
}
preparedStatement .executeUpdate();
}
所以,我想知道是否有办法使用html
变量填充我用于存储每个链接的CSV。
答案 0 :(得分:1)