zoukankan      html  css  js  c++  java
  • 案例4-修改商品

    1 完成商品信息的回显

    1 修改list.jsp

    <%@ page language="java" pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <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" src="${pageContext.request.contextPath }/js/jquery-1.11.3.min.js"></script>
    <script type="text/javascript">
                function addProduct(){
                    window.location.href = "${pageContext.request.contextPath}/adminAddProductUI";
                }
                function delProduct(pid){
                    var flag = confirm("你确认要删除吗?");
                    /* alert(pid); */
                    /* alert(flag); */
                    if(flag){
                        location.href="${pageContext.request.contextPath}/delProduct?pid="+pid;
                    }
                }
                function editProduct(pid){
                    /* alert(pid); */
                    location.href="${pageContext.request.contextPath}/adminEditProduct?pid="+pid;
                }
                
            </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" onclick="addProduct()">
                                添加</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>
                                <!-- varStatus 记录第几次遍历 -->
                                <c:forEach items="${productList }" var="product" varStatus="vs">
                                
                                    <tr onmouseover="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 }/${product.pimage }"></td>
                                        <td style="CURSOR: hand; HEIGHT: 22px" align="center"
                                            width="17%">${product.pname }</td>
                                        <td style="CURSOR: hand; HEIGHT: 22px" align="center"
                                            width="17%">${product.shop_price }</td>
                                        <td style="CURSOR: hand; HEIGHT: 22px" align="center"
                                            width="17%">
                                            ${product.is_hot==1?"是":"否" }</td>
                                        <td align="center" style="HEIGHT: 22px"><a
                                            href="javascript:void(0)" onclick="editProduct(${product.pid})">
                                                <img
                                                src="${pageContext.request.contextPath}/images/i_edit.gif"
                                                border="0" style="CURSOR: hand">
                                        </a></td>
            
                                        <!-- href="javascript:void(0)"让它不跳转 -->
                                        <td align="center" style="HEIGHT: 22px"><a href="javascript:void(0)" onclick="delProduct(${product.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>

    2 web层AdminEditProductServlet

    package www.test.web;
    
    import java.io.IOException;
    import java.sql.SQLException;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import www.test.domain.Category;
    import www.test.domain.Product;
    import www.test.service.AdminProductService;
    
    public class AdminEditProductServlet extends HttpServlet {
    
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            // 获取数据
            String pid = request.getParameter("pid");
    //        System.out.println(pid);
            // 传递数据到service层
            AdminProductService service = new AdminProductService();
            Product product = null;
            try {
                product = service.editProduct(pid);
            } catch (SQLException e) {
                
                e.printStackTrace();
            }
            
    //        System.out.println(product);
            // 将数据传递给request域
            request.setAttribute("product", product);
            
            
            //获得所有的商品的类别数据
             List<Category> categoryList = null;
             try {
                categoryList =  service.findAllCategory();
            } catch (SQLException e) {
                
                e.printStackTrace();
            }
    //         System.out.println(categoryList);
            // 将获取到的categoryList存储到request域中
            request.setAttribute("categoryList", categoryList);
    
            request.getRequestDispatcher("/admin/product/edit.jsp").forward(request, response);
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
    }

    3 service层AdminProductService

    package www.test.service;
    
    import java.sql.SQLException;
    import java.util.List;
    
    import www.test.dao.AdminProductDao;
    import www.test.domain.Category;
    import www.test.domain.Product;
    
    public class AdminProductService {
    
        public List<Product> findAllProduct() throws SQLException {
    
             //因为没有复杂业务 直接传递请求到dao层
            AdminProductDao dao = new AdminProductDao();
            return dao.findAllProduct();
        }
    
        
        public List<Category> findAllCategory() throws SQLException {
            
            AdminProductDao dao = new AdminProductDao();
            return dao.finAllCategory();
             
        }
    
    
        // 添加商品
        public boolean addProduct(Product product) throws SQLException {
            AdminProductDao dao = new AdminProductDao();
            return dao.addProduct(product);
    
        }
    
    
        //删除数据
        public boolean delProduct(String pid) throws SQLException {
            AdminProductDao dao = new AdminProductDao();
            return dao.delProduct(pid);
        }
    
    
        // 修改数据
        public Product editProduct(String pid) throws SQLException {
            AdminProductDao dao = new AdminProductDao();
            return dao.editProduct(pid);
        }
    
       //保存修改后的数据
        public boolean editProductSave(Product product) throws SQLException {
            
            AdminProductDao dao = new AdminProductDao();
            return dao.editProductSave(product);
        }
    
    }

    4 dao层AdminProductDao

    package www.test.dao;
    
    import java.sql.SQLException;
    import java.util.List;
    
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.BeanHandler;
    import org.apache.commons.dbutils.handlers.BeanListHandler;
    
    import www.test.domain.Category;
    import www.test.domain.Product;
    import www.test.utils.C3P0Utils;
    
    public class AdminProductDao {
    
        public List<Product> findAllProduct() throws SQLException {
            
            QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
            String sql = "select * from product";
            List<Product> productList = qr.query(sql, new BeanListHandler<Product>(Product.class));
            return productList;
        }
    
        public List<Category> finAllCategory() throws SQLException {
            QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
            String sql = "select * from category";
            List<Category> categoryList = qr.query(sql, new BeanListHandler<Category>(Category.class));
            return categoryList;
        }
    
        //添加数据
        public boolean addProduct(Product product) throws SQLException {
            QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
            String sql = "insert into product values(?,?,?,?,?,?,?,?,?,?)";
            Object[] params = {product.getPid(),product.getPname(),product.getMarket_price(),product.getShop_price(),product.getPimage(),product.getPdate(),product.getIs_hot(),product.getPdesc(),product.getPflag(),product.getCid()};
            int num = qr.update(sql, params);
            if(num>0){
                return true;
            }else{
                return false;
            }
            
        }
    
        // 删除数据
        public boolean delProduct(String pid) throws SQLException {
            QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
            String sql = "delete from product where pid=?";
            int num = qr.update(sql, pid);
            if(num>0){
                return true;
            }else{
                return false;
            }
        }
    
        //修改数据
        public Product editProduct(String pid) throws SQLException {
            QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
            String sql = "select * from product where pid=?";
            Product product = qr.query(sql, new BeanHandler<Product>(Product.class),pid);
            return product;
        }
    
        public boolean editProductSave(Product product) throws SQLException {
            QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
            String sql = "update product set pname=?,market_price=?,shop_price=?,pimage=?,pdate=?,is_hot=?,pdesc=?,pflag=?,cid=? where pid=?";
            int num = qr.update(sql, product.getPname(),product.getMarket_price(),
                    product.getShop_price(),product.getPimage(),product.getPdate(),product.getIs_hot(),
                    product.getPdesc(),product.getPflag(),product.getCid(),product.getPid());
            System.out.println(num);
            if(num>0){
                return true;
            }else{
                return false;
            }
        }
    }

    5 修改edit.jsp代码

    <%@ page language="java" pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <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" type="text/css" rel="stylesheet">
            <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.11.3.min.js"></script>
            <script type="text/javascript">
            $(function(){
                //获得当前回显的product的cid
                $("#cid option[value='${product.cid }']").prop("selected",true);
            });
            
            //页面加载完毕后 确定那个option被选中
            /* window.onload = function(){
                //获得当前回显的product的cid
                var cid = "${product.cid }";
                //获得所有的<select name="cid">下的option
                var options = document.getElementById("cid").getElementsByTagName("option");
                //比较每一个option的value与cid
                for(var i=0;i<options.length;i++){
                    if(cid==options[i].value){
                        options[i].selected = true;
                    }
                }
            } */
            
            </script>
        </HEAD>
        
        <body>
            <!--enctype="multipart/form-data" 
            修改表单提交给servlet处理。删除form里面的enctype属性,
            这个属性是文件上传的意思。  -->
            <form id="userAction_save_do" name="Form1" action="${pageContext.request.contextPath}/adminEditProductSave" method="post" >
            
                <!-- 需要提交的数据,又还不想要让用户看到就使用type="hidden" -->
                <input type="hidden" name="pid" value="${product.pid }">
                
                <table cellSpacing="1" cellPadding="5" width="100%" align="center" bgColor="#eeeeee" style="border: 1px solid #8ba7e3" border="0">
                    <tr>
                        <td class="ta_01" align="center" bgColor="#afd1f3" colSpan="4"
                            height="26">
                            <strong><STRONG>编辑商品</STRONG>
                            </strong>
                        </td>
                    </tr>
    
                    <tr>
                        <td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
                            商品名称:
                        </td>
                        <td class="ta_01" bgColor="#ffffff">
                            <input type="text" name="pname" value="${product.pname }" id="userAction_save_do_logonName" class="bg"/>
                        </td>
                        <td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
                            是否热门:
                        </td>
                        <td class="ta_01" bgColor="#ffffff">
                            
                            <select name="is_hot">
                                <option value="${product.is_hot }">${product.is_hot==1?"是":"否" }</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
                            市场价格:
                        </td>
                        <td class="ta_01" bgColor="#ffffff">
                            <input type="text" name="market_price" value="${product.market_price }" id="userAction_save_do_logonName" class="bg"/>
                        </td>
                        <td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
                            商城价格:
                        </td>
                        <td class="ta_01" bgColor="#ffffff">
                            <input type="text" name="shop_price" value="${product.shop_price} " id="userAction_save_do_logonName" class="bg"/>
                        </td>
                    </tr>
                    <tr>
                        <td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
                            商品图片:
                        </td>
                        <td class="ta_01" bgColor="#ffffff" colspan="3">
                            <input type="file" name="upload" />
                        </td>
                    </tr>
                    <tr>
                        <td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
                            所属分类:
                        </td>
                        <td class="ta_01" bgColor="#ffffff" colspan="3">
                            <select id="cid"  name="cid">
                                <c:forEach items="${categoryList }" var="category">
                                    <option value="${category.cid }">${category.cname } </option>
                                </c:forEach>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
                            商品描述:
                        </td>
                        <td class="ta_01" bgColor="#ffffff" colspan="3">
                            <textarea name="pdesc" rows="5" cols="30">
                                ${product.pdesc}
                            </textarea>
                        </td>
                    </tr>
                    <tr>
                        <td class="ta_01" style="WIDTH: 100%" align="center"
                            bgColor="#f5fafe" colSpan="4">
                            <button type="submit" id="userAction_save_do_submit" value="确定" class="button_ok">
                                确认
                            </button>
    
                            <FONT face="宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>
                            <button type="reset" value="重置" class="button_cancel">&#37325;&#32622;</button>
    
                            <FONT face="宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>
                            <INPUT class="button_ok" type="button" onclick="history.go(-1)" value="返回"/>
                            <span id="Label1"></span>
                        </td>
                    </tr>
                </table>
            </form>
        </body>
    </HTML>

    2 完成修改后的保存操作

    1 修改edit.jsp代码

    <%@ page language="java" pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <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" type="text/css" rel="stylesheet">
            <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.11.3.min.js"></script>
            <script type="text/javascript">
            $(function(){
                //获得当前回显的product的cid
                $("#cid option[value='${product.cid }']").prop("selected",true);
            });
            
            //页面加载完毕后 确定那个option被选中
            /* window.onload = function(){
                //获得当前回显的product的cid
                var cid = "${product.cid }";
                //获得所有的<select name="cid">下的option
                var options = document.getElementById("cid").getElementsByTagName("option");
                //比较每一个option的value与cid
                for(var i=0;i<options.length;i++){
                    if(cid==options[i].value){
                        options[i].selected = true;
                    }
                }
            } */
            
            </script>
        </HEAD>
        
        <body>
            <!--enctype="multipart/form-data" 
            修改表单提交给servlet处理。删除form里面的enctype属性,
            这个属性是文件上传的意思。  -->
            <form id="userAction_save_do" name="Form1" action="${pageContext.request.contextPath}/adminEditProductSave" method="post" >
            
                <!-- 需要提交的数据,又还不想要让用户看到就使用type="hidden" -->
                <input type="hidden" name="pid" value="${product.pid }">
                
                <table cellSpacing="1" cellPadding="5" width="100%" align="center" bgColor="#eeeeee" style="border: 1px solid #8ba7e3" border="0">
                    <tr>
                        <td class="ta_01" align="center" bgColor="#afd1f3" colSpan="4"
                            height="26">
                            <strong><STRONG>编辑商品</STRONG>
                            </strong>
                        </td>
                    </tr>
    
                    <tr>
                        <td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
                            商品名称:
                        </td>
                        <td class="ta_01" bgColor="#ffffff">
                            <input type="text" name="pname" value="${product.pname }" id="userAction_save_do_logonName" class="bg"/>
                        </td>
                        <td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
                            是否热门:
                        </td>
                        <td class="ta_01" bgColor="#ffffff">
                            
                            <select name="is_hot">
                                <option value="${product.is_hot }">${product.is_hot==1?"是":"否" }</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
                            市场价格:
                        </td>
                        <td class="ta_01" bgColor="#ffffff">
                            <input type="text" name="market_price" value="${product.market_price }" id="userAction_save_do_logonName" class="bg"/>
                        </td>
                        <td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
                            商城价格:
                        </td>
                        <td class="ta_01" bgColor="#ffffff">
                            <input type="text" name="shop_price" value="${product.shop_price} " id="userAction_save_do_logonName" class="bg"/>
                        </td>
                    </tr>
                    <tr>
                        <td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
                            商品图片:
                        </td>
                        <td class="ta_01" bgColor="#ffffff" colspan="3">
                            <input type="file" name="upload" />
                        </td>
                    </tr>
                    <tr>
                        <td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
                            所属分类:
                        </td>
                        <td class="ta_01" bgColor="#ffffff" colspan="3">
                            <select id="cid"  name="cid">
                                <c:forEach items="${categoryList }" var="category">
                                    <option value="${category.cid }">${category.cname } </option>
                                </c:forEach>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
                            商品描述:
                        </td>
                        <td class="ta_01" bgColor="#ffffff" colspan="3">
                            <textarea name="pdesc" rows="5" cols="30">
                                ${product.pdesc}
                            </textarea>
                        </td>
                    </tr>
                    <tr>
                        <td class="ta_01" style="WIDTH: 100%" align="center"
                            bgColor="#f5fafe" colSpan="4">
                            <button type="submit" id="userAction_save_do_submit" value="确定" class="button_ok">
                                确认
                            </button>
    
                            <FONT face="宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>
                            <button type="reset" value="重置" class="button_cancel">&#37325;&#32622;</button>
    
                            <FONT face="宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>
                            <INPUT class="button_ok" type="button" onclick="history.go(-1)" value="返回"/>
                            <span id="Label1"></span>
                        </td>
                    </tr>
                </table>
            </form>
        </body>
    </HTML>

    2 web层AdminEditProductSaveServlet

    package www.test.web;
    
    import java.io.IOException;
    import java.lang.reflect.InvocationTargetException;
    import java.sql.SQLException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Map;
    import java.util.UUID;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.commons.beanutils.BeanUtils;
    
    import www.test.domain.Product;
    import www.test.service.AdminProductService;
    
    public class AdminEditProductSaveServlet extends HttpServlet {
    
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
             //解决乱码问题
            request.setCharacterEncoding("UTF-8");
            //获取数据
            Map<String, String[]> parameterMap = request.getParameterMap();
            //使用BeanUtils进行子映射封装
            Product  product = new Product();
            try {
                BeanUtils.populate(product, parameterMap);
            } catch (IllegalAccessException | InvocationTargetException e) {
                
                e.printStackTrace();
            }
            //此位置Product已经封装完毕----将表单的数据封装完毕
            //手动设置表单中没有数据
    
            //2)private String pimage;
            product.setPimage("products/1/c_0033.jpg");
           //3)private String pdate;//上架日期
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            String pdate = format.format(new Date());
            product.setPdate(pdate);
            //4)private int pflag;//商品是否下载 0代表未下架
            product.setPflag(0);
           System.out.println(product);
            // 3 传递数据给service层
            AdminProductService service = new AdminProductService();
            boolean isSuccess = true;
            try {
                isSuccess = service.editProductSave(product);
            } catch (SQLException e) {
                
                e.printStackTrace();
            }
            System.out.println(isSuccess);
            //将处理结果存储到request域中
            request.setAttribute("isSuccess", isSuccess);
             //跳转到列表页面
            //response.sendRedirect(request.getContextPath()+"/adminProductList");
            request.getRequestDispatcher("/adminProductList").forward(request, response);
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
    }

    3 service层AdminProductService

    package www.test.service;
    
    import java.sql.SQLException;
    import java.util.List;
    
    import www.test.dao.AdminProductDao;
    import www.test.domain.Category;
    import www.test.domain.Product;
    
    public class AdminProductService {
    
        public List<Product> findAllProduct() throws SQLException {
    
             //因为没有复杂业务 直接传递请求到dao层
            AdminProductDao dao = new AdminProductDao();
            return dao.findAllProduct();
        }
    
        
        public List<Category> findAllCategory() throws SQLException {
            
            AdminProductDao dao = new AdminProductDao();
            return dao.finAllCategory();
             
        }
    
    
        // 添加商品
        public boolean addProduct(Product product) throws SQLException {
            AdminProductDao dao = new AdminProductDao();
            return dao.addProduct(product);
    
        }
    
    
        //删除数据
        public boolean delProduct(String pid) throws SQLException {
            AdminProductDao dao = new AdminProductDao();
            return dao.delProduct(pid);
        }
    
    
        // 修改数据
        public Product editProduct(String pid) throws SQLException {
            AdminProductDao dao = new AdminProductDao();
            return dao.editProduct(pid);
        }
    
       //保存修改后的数据
        public boolean editProductSave(Product product) throws SQLException {
            
            AdminProductDao dao = new AdminProductDao();
            return dao.editProductSave(product);
        }
    
    }

    4 dao层AdminProductDao

    package www.test.dao;
    
    import java.sql.SQLException;
    import java.util.List;
    
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.BeanHandler;
    import org.apache.commons.dbutils.handlers.BeanListHandler;
    
    import www.test.domain.Category;
    import www.test.domain.Product;
    import www.test.utils.C3P0Utils;
    
    public class AdminProductDao {
    
        public List<Product> findAllProduct() throws SQLException {
            
            QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
            String sql = "select * from product";
            List<Product> productList = qr.query(sql, new BeanListHandler<Product>(Product.class));
            return productList;
        }
    
        public List<Category> finAllCategory() throws SQLException {
            QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
            String sql = "select * from category";
            List<Category> categoryList = qr.query(sql, new BeanListHandler<Category>(Category.class));
            return categoryList;
        }
    
        //添加数据
        public boolean addProduct(Product product) throws SQLException {
            QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
            String sql = "insert into product values(?,?,?,?,?,?,?,?,?,?)";
            Object[] params = {product.getPid(),product.getPname(),product.getMarket_price(),product.getShop_price(),product.getPimage(),product.getPdate(),product.getIs_hot(),product.getPdesc(),product.getPflag(),product.getCid()};
            int num = qr.update(sql, params);
            if(num>0){
                return true;
            }else{
                return false;
            }
            
        }
    
        // 删除数据
        public boolean delProduct(String pid) throws SQLException {
            QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
            String sql = "delete from product where pid=?";
            int num = qr.update(sql, pid);
            if(num>0){
                return true;
            }else{
                return false;
            }
        }
    
        //修改数据
        public Product editProduct(String pid) throws SQLException {
            QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
            String sql = "select * from product where pid=?";
            Product product = qr.query(sql, new BeanHandler<Product>(Product.class),pid);
            return product;
        }
    
        //保存修改后的数据
        public boolean editProductSave(Product product) throws SQLException {
            QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
            String sql = "update product set pname=?,market_price=?,shop_price=?,pimage=?,pdate=?,is_hot=?,pdesc=?,pflag=?,cid=? where pid=?";
            int num = qr.update(sql, product.getPname(),product.getMarket_price(),
                    product.getShop_price(),product.getPimage(),product.getPdate(),product.getIs_hot(),
                    product.getPdesc(),product.getPflag(),product.getCid(),product.getPid());
            System.out.println(num);
            if(num>0){
                return true;
            }else{
                return false;
            }
        }
    }

    3 总结

    <!--enctype="multipart/form-data" 修改表单提交给servlet处理。删除form里面的enctype属性,这个属性是文件上传的意思。  --> 不删除表单中的enctype获取不到数据。

    <!-- 需要提交的数据,又还不想要让用户看到就使用type="hidden" -->
        <input type="hidden" name="pid" value="${product.pid }">

  • 相关阅读:
    MRC下多个对象的内存管理
    MacOS安装flutter(MacOS下flutter环境配置)
    swift 简化使用UserDefaults,UserDefaults使用优化
    swift中多继承的实现
    iOS blowfish加密解密
    *** Assertion failure in void UIViewReportBrokenSuperviewChain(UIView *__strong, UIView *__strong, BOOL)()
    iOS建立自己cocoaPods库
    iOS关于UISwitch按钮值的改变无法监听到的问题
    iOS 11 UICollectionView顶部出现白色间隔的问题
    iOS 对UIAlertController内的输入框进行输入监听,实时改变确定、取消按钮颜色
  • 原文地址:https://www.cnblogs.com/jepson6669/p/8344096.html
Copyright © 2011-2022 走看看