一般而言,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;idao.del(list);
//呼叫dao層的刪除方法;
dao層:
public void del(list list)
此種方法會發出多條的刪除語句,影響效率極大;
hibernate批量修改,批量刪除
在hibernate應用中如何處理批量更新和批量刪除?批量更新是指在乙個事務中更新大批量資料,批量刪除是指在乙個事務中刪除大批量資料。以下程式直接通過hibernate api批量更新customers表中年齡大於零的所有記錄的age欄位 tx session.begintransaction it...
hibernate批量修改,批量刪除
在hibernate應用中如何處理批量更新和批量刪除?批量更新是指在乙個事務中更新大批量資料,批量刪除是指在乙個事務中刪除大批量資料。以下程式直接通過hibernate api批量更新customers表中年齡大於零的所有記錄的age欄位 tx session.begintransaction it...
hibernate的批量刪除
hibernate的批量刪除 一般而言,hibernate的批量刪除的寫法有兩種,一種是hibernate內建的批量刪除,不過他的批量刪除是將每條記錄逐一生成刪除 語句,其效率極低,當然我們可以使用抓取策略給其進行優化,不過這只是亡羊補牢的方法,效率的提公升依然不能讓我們滿意,很不推薦使用 另一種是...