JAVA-入库条件更新SQL相同ID库存数量增加

目录

前言:

正题:

数据库表设计:

一、Controller层

二、Service层

三、Dao层


前言:

在写更新语句时没有成功,总报下图错误,为防止再出现写更新语句时的语句错误,特此总结一篇关于条件更新并增加的SQL

之前的错误条件更新SQL,请注意!

String update_sql = "update tb_commodity set (?,?,?,?,?)where id = ?";

正题:

下图为业务需求

更改之后

主要是SQL语句的书写,但是入库需要判断是否有相同ID,相同的走更新SQL,不同直接Insert

数据库表设计:

一、Controller层

	// 向库存表中插入数据
	    private void inputCommodity(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
	        int id = Integer.parseInt(req.getParameter("commodityId").toString());
	        double price = Double.parseDouble(req.getParameter("price").toString());
	        String forwardPage = managerPage;
	        String name = req.getParameter("name");
	        String specification = req.getParameter("specification");
	        String units = req.getParameter("units");
	        int stock = Integer.parseInt(req.getParameter("stock").toString());
	        Commodity commodity = new Commodity();
	        commodity.setId(id);
	        commodity.setPrice(price);
	        commodity.setName(name);
	        commodity.setUnits(units);
	        commodity.setSpecification(specification);
	        commodity.setStock(stock);
	        //进货管理添加:1.相同商品条码(更新仓库表走update)2.不同商品条码(直接添加走insert)
	        boolean booleann = supermarketService.inputCommodity(commodity);
	        if (booleann == false){
	            forwardPage = commodityPage;
	        }
	        else{
	            forwardPage = commodityPage;
	        }
	        List<Commodity> commodities = supermarketService.getCommodities();
	        RequestDispatcher view = req.getRequestDispatcher(forwardPage);
	        req.setAttribute("commodities", commodities);
	        view.forward(req, resp);
    }

二、Service层

	// 进货管理添加:1.相同商品条码(更新仓库表走update)2.不同商品条码(直接添加走insert)
	    public boolean inputCommodity(Commodity commodity){
	        // 先查询一下仓库表的数据
	        Commodity commodity1 = superMarketDao.getCommodity(commodity.getId());
	        // 如果相同进行更新
	        if (commodity1 !=null){
	            superMarketDao.updateCommodity(commodity);
	            return false;
	        }
	        // 商品条码不同直接进行添加
	        else{
	            superMarketDao.insertCommodity(commodity);
	            return true;
	        }
    }

三、Dao层

这里主要介绍下更新的SQL,插入和查询很简单。

	// 更新库存表---主要是添加货有相同ID把库存数量进行累加
	    public void updateCommodity(Commodity commodity){
	        // 只更新具有相同ID的 1.商品名称 2.规格等级 3.单价 4.售价--进行更新 5.数量进行累加
	        String update_sql = "update tb_commodity set name=?,specification=?,units=?,price=?,stock = stock+? where id = ? ";
	        Object[] update_paramValue = {commodity.getName(),commodity.getSpecification(),commodity.getUnits(),commodity.getPrice(),commodity.getStock(),commodity.getId()};
	        super.update(update_sql,update_paramValue);
    }

 

  • 39
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 38
    评论
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值