hibernate的批量刪除

2021-09-07 18:05:12 字數 941 閱讀 8091

**:hibernate的批量刪除

一般而言,hibernate的批量刪除的寫法有兩種,一種是hibernate內建的批量刪除,不過他的批量刪除是將每條記錄逐一生成刪除

語句,其效率極低,當然我們可以使用抓取策略給其進行優化,不過這只是亡羊補牢的方法,效率的提公升依然不能讓我們滿意,很不推薦使用;

另一種是由"拼串"形成的hql語句,其能夠形成一條語句,從而是效率得到最大的提公升;

我們先說"拼串"形式的寫法:

個人使用是ssh,故此使用的是spring模板,如果單獨使用hibernate,請增加事務與關閉session;

//一條刪除語句的寫法

public void del(int selectflag)  else 

}   

session session= this.getsession();

query q= session.createquery("delete from user where "+hql);

q.executeupdate();}

此寫法會形成一條hql語句,得到最大的提公升;

然後我們說下是hibernate內建的批量刪除:

呼叫dao層,並傳遞容器;

/*** hibernate的批量刪除;

* 缺點:刪除時是多條刪除語句,影響效率;

*/list list = new arraylist();

for(int i=0;i

user u= new user();

u.setid(selectflag[i]);

list.add(u);    

}dao.del(list);

//呼叫dao層的刪除方法;

dao層:

public void del(list list) 

此種方法會發出多條的刪除語句,影響效率極大;

hibernate批量刪除

一般而言,hibernate的批量刪除的寫法有兩種,一種是hibernate內建的批量刪除,不過他的批量刪除是將每條記錄逐一生成刪除 語句,其效率極低,當然我們可以使用抓取策略給其進行優化,不過這只是亡羊補牢的方法,效率的提公升依然不能讓我們滿意,很不推薦使用 另一種是由 拼串 形成的hql語句,其...

hibernate的批量更新 批量刪除

hibernate的批處理api session.createquery hql executeupdate 如果有引數則在執行之前設定引數。批量更新示例 test public void testbatchupdate 批量刪除示例 test public void testbatchdelete...

hibernate批量修改,批量刪除

在hibernate應用中如何處理批量更新和批量刪除?批量更新是指在乙個事務中更新大批量資料,批量刪除是指在乙個事務中刪除大批量資料。以下程式直接通過hibernate api批量更新customers表中年齡大於零的所有記錄的age欄位 tx session.begintransaction it...