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

Hibernate的批量處理[5]

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

  Transaction tx=sessionbeginSession()

    String HQL=delete STUDENT

    Query query=sessioncreateQuery(HQL)

    int size=queryexecuteUpdate()

    txcommit()

    ……

  控制台輸出了也就一條刪除語句Hibernatedelete from T_STUDENT語句執行少了性能上也與使用JDBC相差無幾是一個提升性能很好的方法當然為了有更好的性能筆者建議批量更新與刪除操作還是使用JDBC方法以及基本的知識點與上面的批量插入方法基本相同這裡就不在冗述

  筆者這裡再提供一個方法就是從數據庫端來考慮提升性能在Hibernate程序端調用存儲過程存儲過程在數據庫端運行速度更快以批量更新為例給出參考代碼

  首先在數據庫端建立名為batchUpdateStudent存儲過程

create or replace produre batchUpdateStudent(a in number) as

    begin

    update STUDENT set AGE=AGE+ where AGE>a

    end

    調用代碼如下

Transaction tx=sessionbeginSession()

    Connection conn=sessionconnection()

    String pd=……{call batchUpdateStudent(?)}

    CallableStatement cstmt=connPrepareCall(pd)

    cstmtsetInt( //把年齡這個參數設為

    txcommit()

  觀察上面的代碼也是繞過Hibernate API使用 JDBC API來調用存儲過程使用的還是Hibernate的事務邊界存儲過程無疑是提高批量處理性能的一個好方法直接運行與數據庫端某種程度上講把批處理的壓力轉接給了數據庫

  編後語

  本文探討了Hibernate的批處理操作出發點都是在提高性能上考慮了也只是提供了提升性能的一個小方面

  不管采取什麼樣的方法來提升性能都要根據實際的情況來考慮為用戶提供一個滿足需求的而且高效穩定的系統才是重中之中

[]  []  []  []  []  


From:http://tw.wingwit.com/Article/program/Java/ky/201311/29171.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.