我需要填充 500 个 CSV 文件,每个文件有 400-500 行。但 CSV 文件可作为 example.com/report.csv.gz
在线获取。所以每个 csv 文件都是压缩的,并且是到 URL 的连接。
所以,我正在使用
in = new BufferedReader(new InputStreamReader(new GZIPInputStream(connection.getInputStream())));
首先解压缩以获取 CSV 数据,然后我在每一行上使用 PreparedStatement
来 pouplate 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 的变量。
最佳答案
关于java - 在具有 csv 文件的变量上加载数据 infile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16845578/