熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Hibernate的批量處理[4]

2013-11-23 20:50:17  來源: Java開源技術 

  對於方法采用傳統的JDBC的批處理使用JDBC API來處理這些方法請參照java 批處理自執行SQL

    看看上面的代碼是不是總覺得有不妥的地方?對沒發現麼!這還是JDBC的傳統編程沒有一點Hibernate味道

    可以對以上的代碼修改成下面這樣

Transaction tx=sessionbeginTransaction() //使用Hibernate事務處理

    邊界Connection conn=sessionconnection()

    PrepareStatement stmt=connprepareStatement(insert into T_STUDENT(name) values(?)

    for(int j=j++j<){

    for(int i=i++j<

    {

    stmtsetString(feifei

    }

    }

    stmtexecuteUpdate()

    txcommit() //使用 Hibernate事務處理邊界

    ……

  這樣改動就很有Hibernate的味道了筆者經過測試采用JDBC API來做批量處理性能上比使用Hibernate API要高將近性能上JDBC 占優這是無疑的

  批量更新與刪除

  Hibernate對於批量更新操作Hibernate是將符合要求的數據查出來然後再做更新操作批量刪除也是這樣先把符合條件的數據查出來然後再做刪除操作

  這樣有兩個大缺點

  (占用大量的內存

  (處理海量數據的時候執行update/delete語句就是海量了而且一條update/delete語句只能操作一個對象這樣頻繁的操作數據庫性能低下應該是可想而知的了

  Hibernate 發布後對批量更新/刪除操作引入了bulk update/delete其原理就是通過一條HQL語句完成批量更新/刪除操作很類似JDBC的批量更新/刪除操作在性能上比Hibernate的批量更新/刪除有很大的提升

[]  []  []  []  []  


From:http://tw.wingwit.com/Article/program/Java/ky/201311/29172.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.