项目实训第二周第三次

项目实训第二周第三次记录

1.任务安排

实现了向activity表和act_room_seat表中添加一条记录,需要将其合并实现创建教学活动功能

2.任务分析

activity表保存的是活动的基本属性,act_room_seat表保存的是针对该活动座位的状态。当前端创建教学活动时,生成这两条记录应该是要么都完成,要不都不完成。如果在执行过程中发生了错误,需要回滚到创建教学活动之前的状态。所以我们需要使用事务。通过查找资料发现,Sprint boot实现事务控制比较简单。只需要添加注解即可,这里也体现出了注解的优势所在。

3.具体代码

@Transactional
    public int create_activity(LinkedHashMap<String,String> params) throws ParseException {
        int result=0;
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        String act_name=params.get("act_name");
        String act_desc=params.get("act_desc");
        Date act_start_time=df.parse(params.get("act_start_time"));
        Date act_end_time=df.parse(params.get("act_end_time"));
        String room_name=params.get("room_name");
        Date pick_start_time=df.parse(params.get("pick_start_time"));
        Date pick_end_time=df.parse(params.get("pick_end_time"));
        Date sign_in_time=df.parse(params.get("sign_in_time"));
        Date sign_out_time=df.parse(params.get("sign_out_time"));
        String qrcode=params.get("qrcode");
        String act_seat_status=params.get("act_seat_status");
        Activity activity=new Activity(0,act_name,act_desc,act_start_time,act_end_time,
                room_name,pick_start_time,pick_end_time,sign_in_time,sign_out_time,qrcode);
        result+=activityMapper.add_activity_record(activity);

        int act_id=activity.getAct_id();
        String[] status=act_seat_status.split("");
        int[] seat_ids=activityMapper.find_seat_id_by_room_name(room_name);
        for(int i=0;i<status.length;i++)
        {
            result+=activityMapper.add_act_room_seat_record(act_id,room_name,seat_ids[i],status[i]);
        }
        return result;
    }

在启动类还需要添加@EnableTransactionManagement注解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值