hibernate的批處理api:session.createquery(hql).executeupdate(),如果有引數則在執行之前設定引數。
批量更新示例:
@test
public void testbatchupdate()
批量刪除示例:
@test
public void testbatchdelete()
session.createquery(hql).executeupdate()方法只會產生一條sql語句,update語句或是delete語句,只操作一次資料庫,效率大大提公升。
此外,不能用此方法進行批量插入,只能用原生的jdbc操作:
@test
public void testbatchinsert()
});}
利用session.dowork()方法,這樣也只會產生一條insert語句,進行批量插入操作。注意,方法裡的conn物件型別是c3p0.jar包中的**connection型別,跟hibernate沒關係。
或者一點都不用hibernae的api,全部用原生api,略。
Hibernate 批量更新資料
進行批量更新時,如果一下子把所有物件載入到session的快取中,然後再進快取中一一更新它們,顯然是不可取的,為了解決這一問題,可以使用滾動的結果集 org.hibernate.scrollableresults,query的 scroll 方法返回乙個scrollableresults物件。以下是...
Hibernate批量更新和批量刪除
在最近的銀行系統中多處涉及到批量操作問題,起初用hibernate的更新用法沒太注意,開發的時候由於資料量少,看不出有什麼效能問題,到後來造大量資料測試的時候,發現反應超慢,後倆經過仔細分析考慮,採用了儲存過程的方式來解決,果然系統反應快了很多,以下就是解決問題的過程,以客戶資訊表customers...
Hibernate 批理更新,刪除,插入
在hibernate 2時.一些批量的sql 操作,經常產生效能影響如刪除100000個.在記憶體中載入如此多的對像是沒有必要,所以我們的解決方法就是在hibernate中直接用jdbc 操作 session.connection statment st connection.createsatem...