笑看風(fēng)云

          一切從頭開始
          posts - 28, comments - 1, trackbacks - 0, articles - 2

          hibernate本身不具備插入批量數(shù)據(jù)的能力,因此開發(fā)中盡量少用。
          下面是一個測試?yán)樱?br />
          public void testadd(){
                  Session session
          =
          HibernateUtils.getSession();
                  Transaction tx
          =null
          ;
                      
          try
          {
                          tx
          =
          session.beginTransaction();
                          
          for(int i=0;i<2000;i++)
          {
                              Student stu
          =new
           Student();
                              stu.setName(
          "stu"+
          i);
                              stu.setAddr(
          "addr"+2*
          i);
                              session.save(stu);
                              
          //
          添加20條以后,強制入庫 
                              
          //
          clear()清空緩存
                              
          //
          postgres數(shù)據(jù)庫的隔離級別是已提交讀(Read committed),
                              
          //
          所以flush以后,數(shù)據(jù)看不到,只有commit后才能看到數(shù)據(jù),
                              
          //如果失敗,rollback,前面的flush的數(shù)據(jù)不會入庫

                              if(i%20==0)
                                  session.flush();
                                  session.clear();
                              }

                          }

                        tx.commit();
                          
                      }
          catch(Exception ex){
                          ex.printStackTrace();
                          tx.rollback();
                      }
          finally
          {
                      HibernateUtils.closeSession(session);
                      }


              }

          我使用的數(shù)據(jù)庫是postgres,通過flush把數(shù)據(jù)強制入庫,然后通過session.clear()清空緩存中的實體對象,防止jvm內(nèi)存溢出,速度還行。
          不過沒有大批量的添加,如果大批量的添加可能要考慮使用JDBC,還不行的話,估計得使用的數(shù)據(jù)庫本身自帶的快速導(dǎo)入工具.還不行的話,沒話說,換數(shù)據(jù)庫,哈哈。

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 陈巴尔虎旗| 山西省| 大关县| 潮安县| 永嘉县| 泸西县| 崇左市| 尉犁县| 阿克陶县| 潮安县| 濉溪县| 安龙县| 定襄县| 武宣县| 迁安市| 徐闻县| 长岭县| 咸宁市| 灵寿县| 乐东| 丰镇市| 怀集县| 洛宁县| 色达县| 清苑县| 凭祥市| 双流县| 金门县| 泗洪县| 泽州县| 萨嘎县| 泸西县| 巢湖市| 平遥县| 黄大仙区| 阳春市| 湘阴县| 错那县| 河北省| 乌兰浩特市| 芮城县|