提取重复操作 & 批处理

批处理的目的是一次性查询数据库,如果信息量巨大会给内存造成压力,分批处理可以提高效率,

提取重复操作是为了简化代码,便于后期维护

private void extract(int n,Object...ts){
        int i = 0;                         //批处理
        
        switch (n) {
        case SAVE:
            for (Object object : ts) {
                save(object);
                if(i%50==0){         //批处理
                    this.flush();     //批处理
                    this.clear();     //批处理
                }
            }
            break;
        case UPDATE:
            for (Object object : ts) {
                update(object);
                if(i%50==0){
                    this.flush();
                    this.clear();
                }
            }
            break;
        case DELETE:
            for (Object object : ts) {
                delete(object);
                if(i%50==0){
                    this.flush();
                    this.clear();
                }
            }
            break;

        default:
            throw new RuntimeException("输入有误!");
        }
    }
    
    @Override
    public void exe_insert(Object... ts) {
    
        extract(SAVE, ts);

    }

    @Override
    public void exe_delete(Object... ts) {

        extract(DELETE, ts);
    }

    @Override
    public void exe_update(Object... ts) {

        extract(UPDATE, ts);
    }

 

posted @ 2016-07-04 14:12  乱世_独自美  阅读(238)  评论(0)    收藏  举报