欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Hibernate大數據量操作解決方案
閱讀了Hibernate的Reference之后,可以采用批量處理的方法,當插入的數據超過(guò)10000時(shí),就flush session并且clear。
下面是一個(gè)測試method。
 1
/**
 2
     * 測試成批插入數據的事務(wù)處理,返回是否成功
 3
     * 
 4
     * 
@param objPO Object
 5
     * 
@return boolean
 6
     
*/

 7
    
public boolean insertBatch(final Object objPO) {
 8
        
boolean isSuccess = false;
 9
        Transaction transaction 
= null;
10
        Session session 
= openSession();
11
        
try {
12
            transaction 
= session.beginTransaction();
13
            
for (int i = 0; i < 100000; i++{
14
                session.save(objPO);
15
                
if (i % 50 == 0{
16
                    
// flush a batch of inserts and release memory
17
                    session.flush();
18
                    session.clear();
19
                }

20
            }

21
            transaction.commit();
22
            logger.info(
"transaction.wasCommitted:"
23
                    
+ transaction.wasCommitted());
24
            isSuccess 
= true;
25
        }
 catch (HibernateException ex) {
26
            
if (transaction != null{
27
                
try {
28
                    transaction.rollback();
29
                    logger.error(
"transaction.wasRolledBack:"
30
                            
+ transaction.wasRolledBack());
31
                }
 catch (HibernateException ex1) {
32
                    logger.error(ex1.getMessage());
33
                    ex1.printStackTrace();
34
                }

35
            }

36
            logger.error(
"Insert Batch PO Error:" + ex.getMessage());
37
            ex.printStackTrace();
38
        }
 finally {
39
            
if (transaction != null{
40
                transaction 
= null;
41
            }

42
            session.close();
43
        }

44
        
return isSuccess;
45
    }

46

這只是簡(jiǎn)單的測試,實(shí)際項目中遇到的問(wèn)題,要比這個(gè)復雜得多。
這時(shí)候,我們可以讓Spring來(lái)控制Transaction,自己來(lái)控制Hibernate的Session,隨時(shí)更新數據。

首先,利用HibernateDaoSupport類(lèi)來(lái)自定義個(gè)方法打開(kāi)Session;
1
public Session openSession(){
2
        
3
        
return getHibernateTemplate().getSessionFactory().openSession();
4
        
5
    }
然后,用打開(kāi)的Session處理你的數據;
 1
protected void doBusiness(Session session) {
 2

 3
        
while (true{
 4
            
//do your business with the opening session        
 5
            someMethod(session);
 6
            session.flush();
 7
            session.clear();
 8
            logger.info(
"good job!");            
 9
        }
       
10
}

每做一次數據操作,就更新一次Session,這樣可以保證每次數據操作都成功,否則就讓Spring去控制它roll back吧。

最后,記得關(guān)閉Session。

1
Session session  =  openSession();
2
doBusiness(session);
3
session.close(); 
// 關(guān)閉session


至于處理速度呢,不會(huì )慢到哪兒去的,已經(jīng)試驗過(guò)了。; - )

還等什么,趕快試試吧!

 
                                                                               THE END

>

>

>

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
hibernate-事務(wù)管理
hibernate下數據批量處理解決方案
Hibernate入門(mén)之事務(wù)管理
Hibernate入門(mén)
HB群刪記錄
詳解Hibernate Session & Transaction
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久