(二十九)商品管理-添加商品

(二十九)商品管理-添加商品

技术分析:
    文件上传(fileUpload)
    浏览器端要求:
        post请求
        input type="file"
        表单的 enctype="multipart/form-data"
    服务器要求(fileUpload)
        通过reuqest.getParameterxxx()获取的参数全部为空
        使用步骤:
            导入jar包
            创建一个磁盘文件项工厂
            创建一个核心文件上传对象 ServletUpLoad
            上传对象调用方法解析请求 获取一个List<FileItem>

展示所有商品的步骤分析:
1.修改left.jsp的页面的连接
/store/adminProduct?method=findAll
2.在adminProductservlet的 findAll方法中
获取productservice 查询所有的商品 返回list
将list放入request域中 请求转发 /admin/product/list.jsp

/store/WebContent/admin/left.jsp

/store/src/com/louis/web/servlet/AdminProductServlet.java

 

    /**
     * 查询所有商品
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    public String findAll(HttpServletRequest request, HttpServletResponse response) throws Exception {
        //1.调用service 查询所有 返回一个list
        ProductService ps=(ProductService) BeanFactory.getBean("ProductService");
        List<Product> list=ps.findAll();
        
        //2.将list放入request域中 请求转发
        request.setAttribute("list", list);
        
        return "/admin/product/list.jsp";
    }

/store/WebContent/WEB-INF/web.xml

  <servlet>
    <description></description>
    <display-name>AdminProductServlet</display-name>
    <servlet-name>AdminProductServlet</servlet-name>
    <servlet-class>com.louis.web.servlet.AdminProductServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AdminProductServlet</servlet-name>
    <url-pattern>/adminProduct</url-pattern>
  </servlet-mapping>

/store/src/com/louis/service/impl/ProductServiceImpl.java

/**
     * 查询所有
     */
    @Override
    public List<Product> findAll() throws Exception {
        ProductDao pdao=(ProductDao) BeanFactory.getBean("ProductDao");
        
        return pdao.findAll();
    }

/store/src/com/louis/dao/impl/ProductDaoImpl.java

    @Override
    public List<Product> findAll() throws Exception {
        QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
        String sql="select * from product";
        return qr.query(sql, new BeanListHandler<>(Product.class));
    }

/store/WebContent/admin/product/list.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<HTML>
    <HEAD>
        <meta http-equiv="Content-Language" content="zh-cn">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link href="${pageContext.request.contextPath}/css/Style1.css" rel="stylesheet" type="text/css" />
        <script language="javascript" src="${pageContext.request.contextPath}/js/public.js"></script>
        <script type="text/javascript">
            function addProduct(){
                window.location.href = "${pageContext.request.contextPath}/adminProduct_addPage.action";
            }
        </script>
    </HEAD>
    <body>
        <br>
        <form id="Form1" name="Form1" action="${pageContext.request.contextPath}/user/list.jsp" method="post">
            <table cellSpacing="1" cellPadding="0" width="100%" align="center" bgColor="#f5fafe" border="0">
                <TBODY>
                    <tr>
                        <td class="ta_01" align="center" bgColor="#afd1f3">
                            <strong>商品列表</strong>
                        </TD>
                    </tr>
                    <tr>
                        <td class="ta_01" align="right">
                            <button type="button" id="add" name="add" value="添加" class="button_add" οnclick="addProduct()">
&#28155;&#21152;
</button>

                        </td>
                    </tr>
                    <tr>
                        <td class="ta_01" align="center" bgColor="#f5fafe">
                            <table cellspacing="0" cellpadding="1" rules="all"
                                bordercolor="gray" border="1" id="DataGrid1"
                                style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 100%; WORD-BREAK: break-all; BORDER-BOTTOM: gray 1px solid; BORDER-COLLAPSE: collapse; BACKGROUND-COLOR: #f5fafe; WORD-WRAP: break-word">
                                <tr
                                    style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; HEIGHT: 25px; BACKGROUND-COLOR: #afd1f3">

                                    <td align="center" width="18%">
                                        序号
                                    </td>
                                    <td align="center" width="17%">
                                        商品图片
                                    </td>
                                    <td align="center" width="17%">
                                        商品名称
                                    </td>
                                    <td align="center" width="17%">
                                        商品价格
                                    </td>
                                    <td align="center" width="17%">
                                        是否热门
                                    </td>
                                    <td width="7%" align="center">
                                        编辑
                                    </td>
                                    <td width="7%" align="center">
                                        删除
                                    </td>
                                </tr>
                                <c:forEach items="${list }" var="p" varStatus="vs">
                                        <tr οnmοuseοver="this.style.backgroundColor = 'white'"
                                            onmouseout="this.style.backgroundColor = '#F5FAFE';">
                                            <td style="CURSOR: hand; HEIGHT: 22px" align="center"
                                                width="18%">
                                                ${vs.count }
                                            </td>
                                            <td style="CURSOR: hand; HEIGHT: 22px" align="center"
                                                width="17%">
                                                <img width="40" height="45" src="${ pageContext.request.contextPath }/${p.pimage}">
                                            </td>
                                            <td style="CURSOR: hand; HEIGHT: 22px" align="center"
                                                width="17%">
                                                ${p.market_price }
                                            </td>
                                            <td style="CURSOR: hand; HEIGHT: 22px" align="center"
                                                width="17%">
                                                ${p.shop_price }
                                            </td>
                                            <td style="CURSOR: hand; HEIGHT: 22px" align="center"
                                                width="17%">
                                                <c:if test="${p.is_hot==1 }">是</c:if>
                                                <c:if test="${p.is_hot!=1 }">否</c:if>
                                            </td>
                                            <td align="center" style="HEIGHT: 22px">
                                                <a href="${ pageContext.request.contextPath }/adminProduct_edit.action?pid=">
                                                    <img src="${pageContext.request.contextPath}/images/i_edit.gif" border="0" style="CURSOR: hand">
                                                </a>
                                            </td>
                                    
                                            <td align="center" style="HEIGHT: 22px">
                                                <a href="${ pageContext.request.contextPath }/adminProduct_delete.action?pid=">
                                                    <img src="${pageContext.request.contextPath}/images/i_del.gif" width="16" height="16" border="0" style="CURSOR: hand">
                                                </a>
                                            </td>
                                        </tr>
                                    </c:forEach>
                            </table>
                        </td>
                    </tr>
                </TBODY>
            </table>
        </form>
    </body>
</HTML>
View Code

 

 

 

posted on 2017-10-16 11:24 Michael2397 阅读(...) 评论(...) 编辑 收藏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是一个简单的超市管理系统数据库商品添加的存储过程示例: ``` CREATE PROCEDURE sp_add_product @product_name NVARCHAR(50), @category_id INT, @price DECIMAL(10,2), @quantity INT AS BEGIN SET NOCOUNT ON; DECLARE @product_id INT; -- 检查商品名称是否已存在 IF EXISTS (SELECT * FROM Products WHERE ProductName = @product_name) BEGIN RAISERROR('商品名称已存在', 16, 1); RETURN; END -- 插入商品记录并获取新的商品 ID INSERT INTO Products (ProductName, CategoryID, Price, Quantity) VALUES (@product_name, @category_id, @price, @quantity); SET @product_id = SCOPE_IDENTITY(); -- 插入商品库存变更记录 INSERT INTO ProductStockChanges (ProductID, QuantityChanged, ChangeDate) VALUES (@product_id, @quantity, GETDATE()); -- 更新商品分类的商品数量 UPDATE Categories SET TotalProducts = TotalProducts + 1 WHERE CategoryID = @category_id; SELECT @product_id AS ProductID; END ``` 该存储过程接受四个参数:商品名称、商品分类 ID、商品价格和商品数量,并执行以下操作: 1. 检查商品名称是否已存在,如果存在则抛出错误。 2. 插入新的商品记录到 Products 表中,并获取新的商品 ID。 3. 插入一条商品库存变更记录到 ProductStockChanges 表中,记录商品数量变更为添加的数量。 4. 更新对应商品分类的 TotalProducts 字段,增加一个商品数量。 5. 返回新的商品 ID。 注意:该存储过程仅作为示例,实际应用中需要根据具体需求进行调整和完善。 ### 回答2: 超市管理系统的数据库商品添加存储过程是一段预定义的代码逻辑,用于向数据库中添加商品信息。这段代码可以在需要时被调用,以简化商品添加的过程。 存储过程首先会接收需要添加商品信息作为参数。这些参数可以包括商品名称、价格、产地、供应商等。接收到参数后,存储过程会通过SQL语句将这些信息插入到商品表中,以便在后续操作中使用。在插入数据的过程中,存储过程还可以进行一些额外处理,例如检查商品名称是否重复、价格是否正确等,以确保数据的准确性和完整性。 存储过程还可以处理一些其他的逻辑操作。例如,在商品添加之前,存储过程可以查询供应商信息表,以确保添加商品的供应商存在;或者在商品添加之后,存储过程可以更新库存表,以反映新商品的库存情况。 使用存储过程可以带来一些好处。首先,通过将逻辑代码封装在存储过程中,可以提高系统的安全性和性能。其次,存储过程的可重用性使得不同部分的代码可以共享相同的逻辑。此外,存储过程还可以简化应用程序的开发过程,减少开发人员的工作量。 总的来说,超市管理系统的商品添加存储过程是一段预定义的代码逻辑,用于向数据库中添加商品信息,并可以进行一些额外的处理。它的使用可以提高系统的安全性和性能,并简化开发过程。 ### 回答3: 超市管理系统数据库商品添加存储过程是一种将商品信息存储到数据库中的方法。通过存储过程,我们可以定义一系列的操作和规则,以确保商品信息的正确添加和处理。 在超市管理系统中,商品是一个重要的部分,需要管理和跟踪。数据库的存储过程可以用来规定添加商品的流程和逻辑。下面是一个示意的超市管理系统数据库商品添加存储过程的伪代码: ``` CREATE PROCEDURE 添加商品 @商品名称 NVARCHAR(50), @商品价格 DECIMAL(10, 2), @商品库存 INT AS BEGIN -- 检查商品是否已经存在 IF EXISTS (SELECT * FROM 商品表 WHERE 商品名称 = @商品名称) BEGIN RAISERROR ('商品已存在。', 16, 1) RETURN END -- 添加商品信息到商品表 INSERT INTO 商品表 (商品名称, 商品价格, 商品库存) VALUES (@商品名称, @商品价格, @商品库存) -- 返回成功信息 SELECT '商品添加成功。' END ``` 在这个存储过程中,我们首先检查商品是否已经存在于商品表中。如果存在,则会抛出一个错误,并退出存储过程。如果商品不存在,则会将商品的信息插入到商品表中,并返回一个成功信息。 通过使用存储过程,我们可以确保商品信息的一致性和完整性。同时,存储过程还可以在执行添加商品操作时进行一些其他的处理,比如更新相关的库存和销售统计数据。 在超市管理系统中,商品添加是一个频繁的操作,通过使用存储过程,我们可以简化和优化代码的开发和维护工作,提高整体系统的性能和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值