extends AbstractPagedInfoServImpl<ExcelMap> implements
GenerateExcelService {
/**
* protected static DateFormat dateFormat = new
* SimpleDateFormat("yyyy-MM-dd");
*/
@Override
public void generateExcel(final ExcelMap map, final String fileName)
throws SAABException {
……(字數限制,略去)
// while (startIndex < countInDB)
do {
……(字數限制,略去)
}
while (countInDB > 0);
}
}}
extends AbstractPagedInfoServImpl<ExcelMap> implements
GenerateExcelService {
/**
* 日期格式化类,用于子类的数据格式化处理中。<br />
* 2012年10月23日 这个DateFormat是线程不安全的。不能这样使用。各子类自己去实现好了
*
* @author 团长
* @since 2012-10-22 protected static DateFormat dateFormat = new
* SimpleDateFormat("yyyy-MM-dd");
*/
/**
* 从数据库中分批读取数据、写入excel的方法。<br />
* 2012年10月10日 要求传入参数fileName包含有完整的物理路径和后缀。团长<br />
* 基本流程是: 1、查询数据库中的数据总量;2、根据数据总量、一次需要导入的数据量等,从数据库中获取一次要导入的数据<br />
* 3、将这一次要导入的数据写入excel中;4、循環步進。
*
* @author 团长
* @since 2012-9-26
* @throws 无
* @see com.sinosig.atip.common.excel.generate.GenerateExcelService#generateExcel(com.sinosig.atip.common.excel.generate.model.ExcelMap)
*
*/
@Override
public void generateExcel(final ExcelMap map, final String fileName)
throws SAABException {
……(字數限制,略去)
// while (startIndex < countInDB)
// 2012年09月28日 当countInDB=0时,原有的while循环将出现问题,因此改为do-while
// 当countInDB=0时,startIndex=endIndex=0,while条件将不成立,从而不生成文件
// 如果将while条件改成<=,循环步进将失去意义,因为startIndex=endIndex=countInDB=0将恒成立
do {
……(字數限制,略去)
}
// 还没有导完的情况下,即数据库中还有剩余数据
while (countInDB > 0);
/* 2012年10月09日 atip-35 职责分离 团长 始 */
// 这里原本还有压缩zip包以及存入数据库的功能代码。考虑到单一职责,以及业务的耦合性
// 将这两部分代码剥离了出去。
/* 2012年10月09日 atip-35 职责分离 团长 终 */
}
}