需求:
导入Excel(上万条记录),每一行数据对应表(table_product)的一条记录。 导入时先读取Excel,并将数据insert到table_product表,同时insert到记录表,当barcode存在则做update操作。(barcode是Excel中的某一列的值)。
现有的处理方式很脑残:
[code="java"]
Action处理:
List list = new ArrayList();
Map map = excelReader.readExcelContent(is);
for (int i = 1; i <= map.size(); i++) {
list.add(map.get(i));
}
1、循环读取Excel,并将Excel的记录保存到一个ArrayList当中。
这一步的操作是否存在效率问题? ArrayList和Map是否合适?
service层处理方法:
for (int i = 0; i < list.size(); i++) {
String[] str = list.get(i);
// 查询数据是否存在
coll = findByBarCode(str[count]);
if (null != coll) {
//存在,做更新操作
update();
}else{
//不存在,做插入操作
insert();
drinsert(); //插入记录表
}
}
[/code]
这种方式很无脑,效率极低,求提出优化方案。