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

文章资讯 2020-08-07 21:34:11

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

之前的错误条件更新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 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);
}