我有一个包含8万行的csv文件,
每行都有:费用;日期(123.232; 30/12/2008)
例如,我必须将所有成本数据插入表名称中作为日期,例如参数:
123.232费用将在“ 30/12/2008”表中行
我有很多这样的行
现在我的程序如下所示:
现在,我必须在for循环中声明SQL查询,因为我需要“ date”参数,
我的问题-如何从for循环中绘制“ pStatement = connection.prepareStatement(“ INSER ....”)行?
为什么我需要它?-因为现在addingBatch不起作用,现在仅添加到数据库的最后一行。
如果我将pStatement.executeBatch()移入循环内部,则不会像批量添加那样工作,但通常每个添加都一样。
我正在使用批量添加,因为我需要快速处理我的应用程序。
需要所有建议
Database database = new Database();
Connection connection = database.GetConnection();
PreparedStatement pStatement = null;
for(int x=0; x<=allRowsInCSVFile.size()-1; x++){
Rows row = allRows.get(x);
pStatement = connection.prepareStatement("INSERT INTO \""+ row.getDate() +"\" (cost) VALUES (?);");
pStatement.setLong(1, row.getCost());
pStatement.addBatch();
}
pStatement.executeBatch();
connection.close();
最佳答案
我认为您应该将allRowsInCSVFile拆分为多个列表,每个列表一个日期,然后可以从循环中绘制准备好的语句(排序)。它不会像您真正想要的那样,但是它将在每个日期进行批处理。我认为这将是您必须做出的妥协。