JSP - 从数据库中减去值

时间:2013-03-28 15:02:01

标签: jsp servlets jstl

我正在尝试在JSP&中创建一个订单系统。 MySQL,我希望有人可以帮助我。

我希望能够在订购产品时降低产品的库存水平。 (即购买了9 * 16gb USB闪存盘。在下订单时,SQL查询检索当前级别50并减去订购金额9并使用新级别41更新数据库。)

我已经尝试过这个JSP,但我无法让它工作。

<sql:query var="stockresult" scope="request" dataSource="jdbc/project">
  SELECT *
  FROM stocklevels
  WHERE productID = $param.productID
</sql:query>

$newstocklevel = stockresult - $orderqty;


<sql:update var="newstock" scope="request" dataSource="jdbc/project">
  UPDATE stocklevels
  SET stock=$newstocklevel
  WHERE productID = $param.productID
</sql:update>

有人可以帮忙吗?

由于

1 个答案:

答案 0 :(得分:1)

这可以为您提供解决方案,但强烈建议您不要在SQL语句中直接插入请求参数。

<sql:query var="stockresult" scope="request" dataSource="jdbc/project">
   SELECT stock <!-- select the current stock -->
   FROM stocklevels
   WHERE productID = $param.productID
</sql:query>

<!-- calculate the new value from the first row of the query result -->
<c:set var"newstocklevel" value="${stockresult.rows[0].stock - orderqty}"/> 


<sql:update var="newstock" scope="request" dataSource="jdbc/project">
   UPDATE stocklevels
   SET stock=$newstocklevel
   WHERE productID = $param.productID
</sql:query>