我需要填充 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 的变量进行填充。