读书人

iBatis中RowHandler处置大数据量的导出

发布时间: 2012-06-27 14:20:09 作者: rapoo

iBatis中RowHandler处理大数据量的导出

背景:一次性导出几十万条数据到excel,此时的导出效率会严重损失。

解决方法: 用ibatis中的RowHandler,一次只处理一条数据,内存中只保持一条数据,导出时每5万条创建一个sheet

具体实现方法:

MyRowHandler处理类:

public String execute(){String fileName="F:\\05-JAVA\\测试.xls";HSSFWorkbook wb = new HSSFWorkbook();MyRowHandler handler = new MyRowHandler();handler.setWb(wb);DaoFactory.getIbatisDao().getSqlMapClientTemplate().queryWithRowHandler("term.base", handler);wb = handler.getWb();OutputStream os = null;try {os = new FileOutputStream(fileName);wb.write(os);}catch(Exception e){}finally{try {os.close();} catch (IOException e) {e.printStackTrace();} }            ?return "success";}

读书人网 >Web前端

热点推荐