`

rowhandler的用法

阅读更多

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);

 

}

 

分享到:
评论

相关推荐

    easyexcel-好用的java Excel工具

    好用的java Excel工具,代替poi easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用POI sax依然需要100M左右内存降低到KB级别,并且再大的excel不会出现...在上层做了模型转换的封装,让使用者更加简单方便

    IBATIS实用记录

    目 录 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

    超轻量压缩传输js2java rpc框架(XtZPStream v1.0)

    该接口继承与“com.ibatis.sqlmap.client.event.RowHandler” 因此很容易将ibatis的数据流逐行输出给浏览器,从而实现非常友好的数据加载方式 6、支持回调全异步(观察者模式):所有的过程调用都采用异步方式, ...

    iBatis SQL Maps开发指南.pdf

    例子7:用RowHandler执行查询(select) 例子8:查询成Paginated List(select) 例子9:查询成Map(select) 用Jakarta Commons Logging记录SQL Map日志 配置日志服务 Java Bean简易教程 Resources...

    iBATIS 帮助文档

    使用新的JAR文件..........................................................................................................8 SQL Map XML配置文件.............................................................

Global site tag (gtag.js) - Google Analytics