自学多线程:使用多线程实现购买商品业务

这篇博客记录了作者自学多线程后,通过Java实现购买商品业务的实例。购买过程分为添加消费记录和减少商品库存两步,分别由两个线程执行。文中详细介绍了SSM项目的搭建、涉及的类如User、Commodity、Consumption,以及如何使用Callable接口实现多线程,并在控制器中完成购买业务。最后展示了消费记录表的数据,但未展示库存减少的截图。
摘要由CSDN通过智能技术生成

自学了几天多线程,写了一个实例,记录一下。
关于多线程实现购买商品业务,我的思路是:购买商品有两步,添加消费记录和减少商品库存,当然正常应用情况下肯定不止这两步,不过测试两步就够了,开两个线程,一条执行添加消费记录,另一条执行减少商品库存。
先搭建一个SSM项目(https://blog.csdn.net/rw4ta/article/details/104522286)
搭建成功后应该是这个样子。
在这里插入图片描述

dao接口

package com.example.demo.dao;
import com.example.demo.entity.Commodity;
import com.example.demo.entity.Consumption;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface UserDao {
    public User user(@Param("name") String name, @Param("pass")String pass);//登录
    public int addcommodity(Consumption consumption);//添加消费记录
    public Commodity commodity(@Param("id")int id);//根据id获取商品详情
    public int updatenum(@Param("id")int id,@Param("num")int num);//修改库存
}

Mapper.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.dao.UserDao">
    <select id="user" resultType="com.example.demo.entity.User">
     select * from User where username=#{name} and `password`=#{pass}
    </select>
    <insert id="addcommodity">
     insert into consumption(userid,commodityid,commoditynum)
      values(#{userid},#{commodityid},#{commoditynum});
    </insert>
    <update id="updatenum">
        update commodity set commoditynum=#{num} where id=#{id}
    </update>
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值