在具有csv文件的变量上加载数据infile

时间:2013-05-30 20:44:45

标签: java mysql database csv prepared-statement

我需要填充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。

1 个答案:

答案 0 :(得分:1)