public List<MLProductDO> findAllProductMapping(int count) {
final List<MLProductDO> result=new ArrayList<MLProductDO>();
int batchSize = count;
List<Object> _data = new ArrayList<Object>(batchSize);
getSqlMapClientTemplate().queryWithRowHandler("ML_PRODUCT_MAPPING.findAllProductMapping", new SimpleBatchRowHandler(batchSize, _data) {
@Override
protected void doHandle(List<Object> data) {
for(Object object:data){
MLProductMappingDO mlProductMappingDO=(MLProductMappingDO)object;
MLProductQuery mlProductQuery=new MLProductQuery();
List<Long> idList=new ArrayList<Long>();
idList.add(mlProductMappingDO.getId());
mlProductQuery.setIdList(idList);
mlProductQuery.setVaccountId(mlProductMappingDO.getVaccountId());
List<MLProductDO> mlProductDOList=mlProductDao.listByQuery(mlProductQuery);
List<MLProductDetailDO> mlProductDetailDOList=mlProductDetailDao.listByIdList(mlProductMappingDO.getVaccountId(),idList);
List<MLProductManageDO> mlProductManageDOList=mlProductManageDao.listByIdList(mlProductMappingDO.getVaccountId(),idList);
if(mlProductDOList.size()>0){
MLProductDO mlProductDO=mlProductDOList.get(0);
if(mlProductDetailDOList.size()>0){
mlProductDO.setDetailDO(mlProductDetailDOList.get(0));
}
if(mlProductManageDOList.size()>0){
mlProductDO.setManageDO(mlProductManageDOList.get(0));
}
result.add(mlProductDO);
}
}
}
});
return result;
}
import com.ibatis.sqlmap.client.event.RowHandler;
/**
* 类SimpleBatchRowHandler.java的实现描述:TODO 类实现描述
* @author wb_jing.xiongj 2013-9-10 下午03:16:01
*/
public abstract class SimpleBatchRowHandler implements RowHandler {
public SimpleBatchRowHandler(int batchSize, List<Object> data) {
logger.info("a new batch-task created, size:- " + batchSize);
this.batchSize = batchSize;
_data = data;
}
public void handleRow(Object o) {
_data.add(o);
if (_data.size() >= batchSize) {
doHandle(new ArrayList<Object>(_data));
_data.clear();
}
}
/**
* invoked every ${batchSize} objects collected
*
* @param data
*/
protected abstract void doHandle(List<Object> data);
private List<Object> _data;
private int batchSize;
private static final Log logger = LogFactory.getLog(SimpleBatchRowHandler.class);
}
相关推荐
好用的java Excel工具,代替poi easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用POI sax依然需要100M左右内存降低到KB级别,并且再大的excel不会出现...在上层做了模型转换的封装,让使用者更加简单方便
目 录 1. JAVA基础 3 1.1 二级 3 ...3.3.7 结合RowHandler进行查询(select) 7 3.3.8 分页查询 (select) 7 3.3.9 基于Map的批量查询 (select) 7 4. JAVA基础 8 4.1 二级 8 4.1.1 三级 8 4.1.1.1 四级 8
该接口继承与“com.ibatis.sqlmap.client.event.RowHandler” 因此很容易将ibatis的数据流逐行输出给浏览器,从而实现非常友好的数据加载方式 6、支持回调全异步(观察者模式):所有的过程调用都采用异步方式, ...
例子7:用RowHandler执行查询(select) 例子8:查询成Paginated List(select) 例子9:查询成Map(select) 用Jakarta Commons Logging记录SQL Map日志 配置日志服务 Java Bean简易教程 Resources...
使用新的JAR文件..........................................................................................................8 SQL Map XML配置文件.............................................................