【Hibernate系列】(二):事务的应用

这篇博客探讨了在Hibernate框架中事务管理的应用。在添加订单并清空购物车的场景下,强调了事务的必要性。文章详细介绍了如何在hibernate.cfg.xml配置文件中设置事务,以及在遇到SQL更新查询错误时,事务回滚的重要性。同时,回顾了在不使用Hibernate时手动处理事务的方法,并对比了两者之间的差异,突显了Hibernate框架在简化事务处理和减少重复代码上的优势。
摘要由CSDN通过智能技术生成

需求

  添加订单成功后,需要将购物车中的商品清空,这两个操作要么都执行,要么都不执行。这时,就用到了事务。

使用

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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值