<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 31,  comments - 31,  trackbacks - 0
    1、上回的心得中我強調了startBatch()的批處理的作用,但是其中的使用是個錯誤用法,并沒有發揮出startBatch()的實力,對此給與觀眾的誤導我將在此表示到欠,并貼出正確的用法
    public class LocalDaoImpl extends SqlMapClientDaoSupport implements LocalDao {

        
    public void insertBuNaTaxBatLst(final PaginatedList list)
        
    {
             getSqlMapClientTemplate().execute(
    new SqlMapClientCallback() {
                    
    public Object doInSqlMapClient(SqlMapExecutor executor)
                            
    throws SQLException {
                        executor.startBatch();
                        
    // do some iBatis operations here
                        for(int i=0,count=list.size();i<count;i++)
                        
    {    
                            executor.insert(
    "insertBuNaTaxBatLst", list.get(i));
                            
    if (i % 50 == 0{
                                System.out.println(
    "----" + i);//沒有意義只為測試
                            }

                        }

                        executor.executeBatch();
                        
    return null;
                    }

                }
    );
        }


    }
    這樣才能利用上startBatch()威力。
    2、注意ibatis的事物默認情況下是自動提交的,如果發現速度上有問題可以留意一下,ibatis只有在顯示的聲明事物管理的情況下才自動將事物管理改為不自動方式。
    3、還是startBatch(),據我測試分析這個鬼東西只有在executeBatch(),才把所有的語句提交到數據庫,在提交之前緩存中保留了大量的sql語句和數據對象,很有可能out of memony,對此要留意,可以在大量數據要做插入時,分批用Batch,如:有40000條數據可將其分為4個Batch塊,讓后將這4個Batch用一個事物提交以保證數據完整性。
    注:最近在做數據抽取項目,愿與大家溝通心得
    posted on 2007-05-30 21:46 小平 閱讀(5962) 評論(6)  編輯  收藏


    FeedBack:
    # re: Spring+ibatis批量存儲心得 2
    2008-01-16 17:43 | 巖石
    非常的好,謝謝,受教了  回復  更多評論
      
    # re: Spring+ibatis批量存儲心得 2[未登錄]
    2008-06-04 00:29 | peter
    學習  回復  更多評論
      
    # re: Spring+ibatis批量存儲心得 2
    2008-11-05 10:48 | 菜蟲
    請問一下,對多張表同時進行批量插入也可以用這種方法嗎?
    執行插入多少條時去調用 executor.executeBatch();效率快。  回復  更多評論
      
    # re: Spring+ibatis批量存儲心得 2
    2009-06-05 10:24 | wnick123
    getSqlMapClientTemplate().execute(new SqlMapClientCallback(){
    public Object doInSqlMapClient(SqlMapExecutor sqlExe) throws SQLException
    {

    getSqlMapClient().startBatch();
    for(ChoiceItem ci:item.getChoiceItems()){
    ci.setFormId(item.getFormId());
    ci.setItemId(item.getItemId());
    getSqlMapClientTemplate().insert("choice_item.insert",ci);
    }
    getSqlMapClient().executeBatch();
    return null;
    }
    });
    /*
    getSqlMapClient().startBatch();
    for(ChoiceItem ci:item.getChoiceItems()){
    ci.setFormId(item.getFormId());
    ci.setItemId(item.getItemId());
    getSqlMapClientTemplate().insert("choice_item.insert",ci);
    }
    getSqlMapClient().executeBatch();
    */


    請問這兩種那個效率高?
    為什么要使用回調的方法  回復  更多評論
      
    # re: Spring+ibatis批量存儲心得 2[未登錄]
    2009-09-02 13:58 | 小斌
    mark  回復  更多評論
      
    # re: Spring+ibatis批量存儲心得 2[未登錄]
    2009-10-22 09:49 | allen
    看看源碼你就知道為什么容易溢出了,你寫的方法也不是完全正確的,因為本身源碼就存在bug,所以自己改源碼中預處理ps生成語句算法,再像你這么用就可以,歡迎討論qq279068158  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2009年6月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    framework

    j2me

    java

    linux

    web

    其他

    友情鏈接

    素材

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲欧洲国产综合AV无码久久| 国内精自视频品线六区免费| 日韩在线视频免费看| 99999久久久久久亚洲| 深夜免费在线视频| 国产精品酒店视频免费看| 亚洲国产精品无码久久一线| 中文在线免费看视频| 18pao国产成视频永久免费| 亚洲欧洲日产国码久在线观看| 国产午夜亚洲精品不卡| 性做久久久久免费观看| 免费国产污网站在线观看不要卡 | 美女又黄又免费的视频| 久久久久久久99精品免费观看| 免费无码看av的网站| 亚洲av日韩av永久在线观看| 亚洲不卡无码av中文字幕| 成人网站免费大全日韩国产| 亚洲A∨无码无在线观看| 免费h片在线观看网址最新| 亚洲精品美女久久7777777| 亚洲AV无码一区二区三区国产| 亚洲一级免费视频| 中文字幕无码日韩专区免费 | 中文字幕乱码免费视频| 亚洲国产精品白丝在线观看| 国产精品视频全国免费观看| 久久综合日韩亚洲精品色| 污污视频免费观看网站| 亚洲色WWW成人永久网址| 最近免费中文字幕大全高清大全1| 最新亚洲成av人免费看| 狠狠入ady亚洲精品| 亚洲毛片αv无线播放一区| 黄网站色在线视频免费观看| 美女被免费网站在线视频免费| 国产在线观看免费视频播放器 | 亚洲综合综合在线| 国产做床爱无遮挡免费视频| 亚洲丁香婷婷综合久久|