成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

概括Hibernate批量處理

開發 后端
這里介紹Hibernate批量處理其實從性能上考慮,它是很不可取的,浪費了很大的內存。從它的機制上講,Hibernate它是先把符合條件的數據查出來,放到內存當中,然后再進行操作。

Hibernate有很多值得學習的地方,這里我們主要介紹Hibernate批量處理,包括介紹應用程序也必須繞過Hibernate API,直接通過JDBC API來調用存儲過程等方面。

Hibernate批量處理其實從性能上考慮,它是很不可取的,浪費了很大的內存。從它的機制上講,Hibernate它是先把符合條件的數據查出來,放到內存當中,然后再進行操作。實際使用下來性能非常不理想,在筆者的實際使用中采用下面的第三種優化方案的數據是:100000條數據插入數據庫,主流臺式機的配置,需要約30分鐘,呵呵,暈倒。

總結下來有三種來處理以解決性能問題:
1:繞過Hibernate API ,直接通過 JDBC API 來做,這個方法性能上是比較好的。也是最快的。
2:運用存儲過程。
3:還是用Hibernate API 來進行常規的批量處理,可以也有變,變就變在,我們可以在查找出一定的量的時候,及時的將這些數據做完操作就

刪掉,session.flush();session.evict(XX對象集); 這樣也可以挽救一點性能損失。這個“一定的量”要就要根據實際情況做定量參考了。一般為30-60左右,但效果仍然不理想。

1:繞過Hibernate API ,直接通過 JDBC API 來做,這個方法性能上是比較好的,也是最快的。(實例為 更新操作)

  1. Transaction tx=session.beginTransaction();   
  2. //注意用的是hibernate事務處理邊界  
  3. Connection conn=session.connection();  
  4. PreparedStatement stmt=conn.preparedStatement
    ("update CUSTOMER as C set 
    C.sarlary=c.sarlary+1 where c.sarlary>1000");  
  5. stmt.excuteUpdate();  
  6. tx.commit();   
  7. //注意用的是hibernate事務處理邊界 

這小程序中,采用的是直接調用JDBC 的API 來訪問數據庫,效率很高。避免了Hibernate 先查詢出來加載到內存,再進行操作引發的性能問題。

2:運用存儲過程。但這種方式考慮到易植和程序部署的方便性,不建議使用。(實例為 更新操作)

如果底層數據庫(如Oracle)支持存儲過程,也可以通過存儲過程來執行批量更新。存儲過程直接在數據庫中運行,速度更加快。在Oracle數

據庫中可以定義一個名為batchUpdateCustomer()的存儲過程,代碼如下:

  1. create or replace procedure batchUpdateCustomer(p_age in number) 
    as begin update CUSTOMERS set 
    AGEAGE=AGE+1 where AGE>p_age;
  2. end; 

以上存儲過程有一個參數p_age,代表客戶的年齡,應用程序可按照以下方式調用存儲過程:

  1. tx = session.beginTransaction();  
  2. Connection con=session.connection();  
  3. String procedure = "{call batchUpdateCustomer(?) }";  
  4. CallableStatement cstmt = con.prepareCall(procedure);  
  5. cstmt.setInt(1,0);  
  6. //把年齡參數設為0  
  7. cstmt.executeUpdate();  
  8. tx.commit(); 

從上面程序看出,應用程序也必須繞過Hibernate API,直接通過JDBC API來調用存儲過程。以上介紹Hibernate批量處理。

【編輯推薦】

  1. Hibernate連接配置方法剖析
  2. Hibernate Session實例剖析
  3. 淺析Hibernate Callback接口
  4. Hibernate Session緩存概述
  5. Hibernate修改addMate方法
責任編輯:佚名 來源: 博客園
相關推薦

2009-09-27 14:33:01

Hibernate批量

2009-09-21 16:56:14

Hibernateibatis

2009-09-28 15:24:38

Hibernate V

2009-09-28 17:27:27

Hibernate A

2009-09-25 15:15:54

Hibernate檢索

2009-09-22 13:31:28

Hibernate C

2009-09-22 17:55:51

Spring Hibe

2009-09-29 16:29:40

Hibernate查詢

2009-09-22 09:31:15

Hibernate主鍵

2009-09-28 09:56:53

Hibernate屬性

2009-09-22 09:40:03

cascade和invHibernate

2009-09-22 13:12:25

Hibernateibatis

2009-09-25 13:18:15

Hibernate數據

2009-09-23 18:05:48

2009-09-21 16:40:42

Hibernate可行

2009-09-24 13:45:53

Hibernate性能

2009-09-22 14:52:55

Hibernate p

2009-09-23 13:21:32

Hibernate O

2009-09-25 10:22:35

Hibernate多表

2009-09-25 15:58:04

Hibernate對象
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产一区探花在线观看 | 一区二区成人 | 久草.com | 97色在线观看免费视频 | 国产大学生情侣呻吟视频 | 国产精品久久久久久久久久久免费看 | 伊人久久综合 | 91在线免费视频 | 欧美一区二区三区国产 | 国产视频1区2区 | 亚洲精品1 | 亚洲a毛片 | 日一区二区 | 亚洲精品久久久久久久久久久久久 | 人人玩人人添人人澡欧美 | 国产乱码精品一区二区三区忘忧草 | 少妇一区在线观看 | 日韩一区二区三区精品 | 国产在线不卡视频 | 色偷偷噜噜噜亚洲男人 | 久久久久国产一区二区三区不卡 | 免费在线看黄 | 亚洲午夜av久久乱码 | 久久久成人免费一区二区 | 一区二区成人 | 国产成人精品一区二区三区网站观看 | 国产日韩欧美91 | 99精品网 | 国产精品一区在线播放 | 中文字幕在线观看第一页 | 超碰97人人人人人蜜桃 | 九一视频在线观看 | 日日操操 | 亚洲一区二区国产 | 国产在线精品一区二区三区 | 国产美女在线播放 | 五月天综合网 | 国产精品久久久久aaaa樱花 | 毛片一级片 | 亚欧精品| 成人精品一区二区三区中文字幕 |