public class MysqlBatchUpdateDao extends SqlMapDaoTemplate implements BatchUpdateDao{
public MysqlBatchUpdateDao(DaoManager daoManager) {
super(daoManager);
} public int BatchUpdateHuifang(List<OrderBean> list) {
int flag=0;
int i=0;
try {
this.startBatch();
for(OrderBean order : list){
this.update("OrderD.updateOrderDByList", order);
}
this.executeBatch();
flag = 1;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
}
批量更新不起作用.为什么呢?都找一天了.更新是更新了.但是和不批量更新用的时间是一样的.
public MysqlBatchUpdateDao(DaoManager daoManager) {
super(daoManager);
} public int BatchUpdateHuifang(List<OrderBean> list) {
int flag=0;
int i=0;
try {
this.startBatch();
for(OrderBean order : list){
this.update("OrderD.updateOrderDByList", order);
}
this.executeBatch();
flag = 1;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
}
批量更新不起作用.为什么呢?都找一天了.更新是更新了.但是和不批量更新用的时间是一样的.
<html>
<head>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<jsp:useBean id="su" scope="page" class="com.jspsmart.upload.SmartUpload"/>
<%
String filePath ="";
String error ="";
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
sdf.setLenient(false);
try{
//System.out.println(new Date());
su.initialize(pageContext);
su.setAllowedFilesList("xls");
su.setDeniedFilesList("exe,bat,jsp,htm,html,txt,dos,rar,zip,,bak");
su.upload();
//out.println("dfdf");
SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
String time = sf.format(new Date());
filePath ="d:/upload/callCenter"+time+".xls";
// System.out.println(su.getFiles().getFile(0).getFileName());
// out.println("old "+filePath);
// BWXContext context = new BWXContext();
su.getFiles().getFile(0).saveAs(filePath);
//out.println(context.getUserID());
}catch(Exception e){
error = "此文件不是EXCEL文件";
%>
<table><tr><td><font size=5 color="red"><%=error %></font></td></tr></table>
<%
return;
}
Cell cell = null;
// String sql = null;
int flag = 0;
try { // 加载postgresql驱动
InputStream fs = null;
try {
fs = new FileInputStream(filePath);
} catch (RuntimeException e) {
e.printStackTrace();
}
List<OrderBean> uplist = new ArrayList();
Workbook wb = Workbook.getWorkbook(fs);
Sheet sh = wb.getSheet(0);
for (int i = 1; i < sh.getRows(); i++) {
List list = new ArrayList();
for (int j = 0; j < sh.getColumns(); j++) {
cell = sh.getCell(j, i);
list.add( cell.getContents());
}
if(!"".equals(list.get(2))&&!"".equals(list.get(3))&&!"".equals(list.get(0))&&!"".equals(list.get(1))){
// sql = "UPDATE orderd t SET t.PrepNum1="+list.get(4)+",t.PrepChar1='!h"+list.get(8)+"!i"+list.get(9)+"!j"+list.get(10)+"!k"+list.get(11)+"!l"+list.get(5)+"',t.PrepChar2='"+list.get(6)+"',t.PrepChar3='"+list.get(7)+"' where t.dccode='"+list.get(2)+"' and t.consignorcode='"+list.get(3)+"' and t.ordercode='"+list.get(0)+"' and t.carserialnumber='"+list.get(1)+"' ";
OrderBean orderBean = new OrderBean();
orderBean.setPrepChar1("!h"+list.get(8)+"!i"+list.get(9)+"!j"+list.get(10)+"!k"+list.get(11)+"!l"+list.get(5));
orderBean.setPrepChar2(String.valueOf(list.get(6)));
orderBean.setPrepChar3(String.valueOf(list.get(7)));
orderBean.setPrepNum1(Double.valueOf(String.valueOf(list.get(4))));
orderBean.setDcCode(String.valueOf(list.get(2)));
orderBean.setConsignorCode(String.valueOf(list.get(3)));
orderBean.setOrdercode(String.valueOf(list.get(0)));
orderBean.setCarserialnumber(String.valueOf(list.get(1)));
uplist.add(orderBean);
}
}
DaoManager daoMgr = BWDBDaoConfig.getDaomanager();
BatchUpdateDao dao=(BatchUpdateDao)daoMgr.getDao(BatchUpdateDao.class);
flag=dao.BatchUpdateHuifang(uplist);
wb.close();
fs.close();
} catch (IOException ex) {
ex.printStackTrace();
} catch (BiffException ex) {
ex.printStackTrace();
}
if("".equals(error) && flag==1){
%>
<table><tr><td><font size=5 color="red">导入成功!</font></td></tr></table>
<%
}else{
%>
<table><tr><td><font size=5 color="red">导入失败!<%=error %></font></td></tr></table>
<%
}
%>
</body>
</html>
问题查出来了
执行提交的这一句要运行很长很长时间,不知道为什么??该怎么处理
after:2009-12-22 15:34:58.971
这是刚才
this.executeBatch();
的用时,更新1000条要4分钟.和不批量更新没什么差别哈...