需求
添加订单成功后,需要将购物车中的商品清空,这两个操作要么都执行,要么都不执行。这时,就用到了事务。
使用
1.配置
在hibernate.cfg.xml中添加
<!--使用currentSession配置事务-->
<property name="hibernate.current_session_context_class">thread</property>
2.开启,关闭,回滚
/** 添加订单信息 **/
public Boolean addOrders(SchoolShop_Orders orders,int[] cids) {
Boolean flag = true;
Session session=getSession();
try {
//开启事务
session.beginTransaction();
//添加订单
session.save(orders);
//清空购物项
deleteCarts(cids,session);
//提交事务
session.getTransaction().commit();
} catch (Exception e) {
flag = false;
e.printStackTrace();
//回滚事务
session.getTransaction().rollback();
}
return flag;
}
/**
* 批量删除购物项
* @param cids
* @param session
* @return
*/
public Boolean deleteCarts(int[] cids,Session session) {
int num=0;
String hql = "";
for(int i=0;i<cids.length;i++) {
if(i==0) {
hql = "cid="+cids