• Java Web之网上购物系统(提交订单、查看我的订单)


    作业终于做完了,好开心。。。。。。虽然这一周经历不是那么顺利,但是觉得还是收获了不少,有过想哭的冲动,代码不会写,事情办不好,各种发愁。空间里发小发了带父母出去游玩的照片,瞬间能量值不知道是被击退的多还是回返的多。不过今天终于补满能量值。下面我来分享一下我的运行结果。

    下面我把我管理后台的代码粘贴一下

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <title>top.jsp</title>
            <style type="text/css">
    body {
        text-align: center;
        font-size: 38px;
    }
    
    * {
        font-family: 华文楷体;
        font-size: 18px;
        color: #F0F ";
    }
    
    h1 {
        text-align: center;
        font-size: 38px;
    }
    </style>
        </head>
    
        <body>
            <h1 style="font-size: 38px;">
                欢迎登录网上购物后台
            </h1>
    
            <form action="<c:url value='/AdminServlet'/>" method="post">
                <input type="hidden" name="method" value="1">
                用户名:
                <input type="text" name="username" />
                <br />&nbsp; 码:
                <input type="password" name="password" />
                <br />
                <input type="submit" value="登录">
            </form>
        </body>
    </html>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <title>list.jsp</title>
            <style type="text/css">
    body {
        text-align: center;
        font-size: 38px;
    }
    
    * {
        font-family: 华文楷体;
        font-size: 18px;
        color: #F0F ";
    }
    img{
        width: 50px;
        height: 30px;
    
    
    }
    h1 {
        text-align: center;
        font-size: 38px;
    }
    
    a:link {
        color: #999;
        text-decoration: none;
    }
    
    a:VISITED {
        text-decoration: none;
        color: #c60;
    }
    
    a:HOVER {
        text-decoration: none;
        color: #00F;
    }
    </style>
    
        </head>
    
        <body>
            <h1 style="font-size: 38px;">
                欢迎登录到网上购物后台系统
            </h1>
            <a style="font-size: 26px;"
                href="<c:url value='/AdminServlet?method=2'/>">查看商品</a>
            <a style="font-size: 26px;" href="<c:url value='/admin/add.jsp'/>">添加商品</a>
            <a style="font-size: 26px;"
                href="<c:url value='/AdminServlet?method=7'/>">查看订单</a>
            <a style="font-size: 26px;" href="<c:url value='/admin/login.jsp'/>">退出系统</a>
    
            <table border="1" align="center" width="60%">
                <tr>
                    <th>
                        商品名
                    </th>
                    <th>
                        价格
                    </th>
                    <th>
                        类型
                    </th>
                    <th>
                        数量
                    </th>
                    <th>
                        图片
                    </th>
                    <th>
                        描述
                    </th>
                    <th>
                        操作
                    </th>
    
                </tr>
                <c:forEach items="${pb.datas }" var="c">
                    <tr>
                        <td>
                            ${c.name }
                        </td>
                        <td>
                            ${c.price }
                        </td>
                        <td>
                            ${c.category }
                        </td>
                        <td>
                            ${c.pnum}
                        </td>
                        <td>
                            <a href="<c:url value='/AdminServlet?method=9&id=${c.id }'/>"><img  src="${c.imgurl }"/> </a>
                        </td>
                        <td>
                            ${c.description }
                        </td>
    
                        <td>
                            <a href="<c:url value='/AdminServlet?method=4&id=${c.id }'/>">编辑</a>
                            <a href="<c:url value='/OrderServlet?method=4&id=${c.id }'/>">删除</a>
                        </td>
                    </tr>
                </c:forEach>
            </table>
            <br>
            第${pb.pageCode }页/共${pb.totalPage }页
            <a href="<c:url value='/AdminServlet?method=2'/>">首页</a>
            <c:if test="${pb.pageCode > 1}">
                <a
                    href="<c:url value='/AdminServlet?method=2&pageCode=${pb.pageCode-1}'/>">上一页</a>
            </c:if>
            <%--页码列表 --%>
            <c:set var="begin" value="1" />
            <c:set var="end" value="10" />
    
            <!-- 定位begin和end -->
            <c:choose>
                <c:when test="${pb.totalPage <= 10}">
                    <c:set var="begin" value="1" />
                    <c:set var="end" value="${pb.totalPage}" />
                </c:when>
                <c:otherwise>
                    <c:choose>
                        <c:when test="${pb.pageCode-4 <= 1 }">
                            <c:set var="begin" value="1" />
                            <c:set var="end" value="10" />
                        </c:when>
                        <c:when test="${pb.pageCode+5 > pb.totalPage}">
                            <c:set var="begin" value="${pb.totalPage-9}" />
                            <c:set var="end" value="${pb.totalPage}" />
                        </c:when>
                        <c:otherwise>
                            <c:set var="begin" value="${pb.pageCode-4}" />
                            <c:set var="end" value="${pb.pageCode+5}" />
                        </c:otherwise>
                    </c:choose>
                </c:otherwise>
            </c:choose>
            <c:forEach begin="${begin}" end="${end}" var="i">
                <c:choose>
                    <c:when test="${pb.pageCode == i}">${i}</c:when>
                    <c:otherwise>
                        <a href="<c:url value='/AdminServlet?method=2&pageCode=${i}'/>">${i
                            }</a>
                    </c:otherwise>
                </c:choose>
            </c:forEach>
    
            <c:if test="${pb.pageCode < pb.totalPage}">
                <a
                    href="<c:url value='/AdminServlet?method=2&pageCode=${pb.pageCode+1}'/>">下一页</a>
            </c:if>
            <a
                href="<c:url value='/AdminServlet?method=2&pageCode=${pb.totalPage }'/>">尾页</a>
    
        </body>
    </html>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <title>add.jsp</title>
            <style type="text/css">
    body {
        text-align: center;
        font-size: 38px;
    }
    
    * {
        font-family: 华文楷体;
        font-size: 18px;
        color: #F0F ";
    }
    
    h1 {
        text-align: center;
        font-size: 38px;
    }
    </style>
    
        </head>
    
        <body>
    
            <h1 style="font-size: 38px;">
                添加商品
            </h1>
    
            <form action="<c:url value='/AdminServlet'/>" method="post">
                <input type="hidden" name="method" value="3">
                <table border="1" width="50%" align="center">
                    <tr>
                        <td>
                            商品名
                        </td>
                        <td>
                            <input type="text" name="name" id="name" onfocus="nameFocus()"
                                onblur="nameBlur()" />
                            <div id="nameId"></div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            价格
                        </td>
                        <td>
                            <input type="text" name="price" id="tel" onfocus="telFocus()"
                                onblur="telBlur()" />
                            <div id="telId"></div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            类型
                        </td>
                        <td>
                            <input type="text" name="category" id="address" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            数量
                        </td>
                        <td>
                            <input type="text" name="pnum" />
                        </td>
                    </tr>
                
                    <tr>
                        <td>
                            描述
                        </td>
                        <td>
                            <input type="text" name="description" />
                        </td>
                    </tr>
    
    
                </table>
                <input style="margin-right: 200px;" type="submit" value="添加" />
    
            </form>
        </body>
    </html>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <title>edit.jsp</title>
        </head>
    
        <body style="text-align: center;">
            <h3>
                修改商品信息
            </h3>
            <form action="<c:url value='/AdminServlet'/>" method="post">
                <input type="hidden" name="method" value="5">
                <input type="hidden" name="id" value="${product.id }">
                <table border="1" width="50%" align="center">
                    <tr>
                        <td>
                            商品名
                        </td>
                        <td>
                            <input type="text" name="name" value="${product.name }" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            价格
                        </td>
                        <td>
                            <input type="text" name="price" value="${product.price }" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            类型
                        </td>
                        <td>
                            <input type="text" id="birthday" name="category"
                                value="${product.category }" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            数量
                        </td>
                        <td>
                            <input type="text" name="pnum" value="${product.pnum }" />
                        </td>
                    </tr>
    
                    <tr>
                        <td>
                            描述
                        </td>
                        <td>
                            <input type="text" name="description"
                                value="${product.description }" />
                        </td>
                    </tr>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <title>list.jsp</title>
        </head>
    
        <body>
            <center>
                <h1>
                    查看所有订单
                </h1>
                <table border="2" width="80%">
                    <tr align="left">
                        <th>
                            序号
                        </th>
                        <th>
                            订单号
                        </th>
                        <th>
                            订单金额
                        </th>
                        <th>
                            时间
                        </th>
                        <th>
                            状态
                        </th>
                        <th>
                            买家详情
                        </th>
                        <th>
                            物流信息
                        </th>
                        <th>
                            交易状态
                        </th>
                        <th>
                            操作
                        </th>
                    </tr>
                    <c:forEach items="${allorderList}" var="order" varStatus="status">
                        <tr>
                            <td>
                                ${status.count}
                            </td>
                            <td>
                                ${order.id }
                            </td>
                            <td>
                                ${order.totalMoney }
                            </td>
                            <td>
                                ${order.ordertime}
                            </td>
                            <td>
                                <c:if test="${order.paysate == 0 }">
                                未支付
                            </c:if>
                                <c:if test="${order.paysate == 1 }">
                                已支付
                            </c:if>
                            </td>
                            <td>
                                ${order.receiverName }
                            </td>
                            <td>
                                <c:if test="${order.paysate == 0 }">
                                未发货
                            </c:if>
                                <c:if test="${order.paysate == 1 }">
                                已发货
                            </c:if>
                            </td>
                            <td>
                                交易中
                            </td>
                            <td>
                                <a href="<c:url value='/OrderServlet?method=4&id=${order.id }'/>">删除</a>
                            </td>
                        </tr>
                        <c:set value="${total + entry.key.price*entry.value}" var="total" />
                    </c:forEach>
                </table>
            </center>
        </body>
    </html>

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <title>updateorder.jsp</title>
        </head>
    
        <body style="text-align: center;">
            <h3>
                修改订单信息
            </h3>
            <form action="<c:url value='/AdminServlet'/>" method="post">
                <input type="hidden" name="method" value="5">
                <input type="hidden" name="id" value="${product.id }">
                <table border="1" width="50%" align="center">
                    <tr>
                        <td>
                            订单号
                        </td>
                        <td>
                            ${order.id }
                        </td>
                    </tr>
                    <tr>
                        <td>
                            买家姓名
                        </td>
                        <td>
                            <input type="text" name="receiverName"
                                value="${order.receiverName }" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            收货地址
                        </td>
                        <td>
                            <input type="text" id="birthday" name="receiverAddress"
                                value="${order.receiverAddress }" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            收获电话
                        </td>
                        <td>
                            <input type="text" name="receiverPhone"
                                value="${order.receiverPhone }" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            物流信息
                        </td>
                        <td>
                            在路上
                        </td>
                    </tr>
                    <tr>
                        <td>
                            交易状态
                        </td>
                        <td>
                            交易中
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" align="center">
                            <input type="submit" value="更改" />
                        </td>
                    </tr>
                </table>
            </form>
        </body>
    </html>
    <%@ page language="java"  import="java.util.*" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>upload.jsp</title>
        </head>
        <body>
            
            <form method="post" action="/shopping/AdminServlet?method=8&id=${product.id }"
                enctype="multipart/form-data">
                选择一个文件:
                <input type="file" name="imgurl"/>
                <br />
                <br />
                <input type="submit" value="上传" />
            </form>
        </body>
    </html>
    
    
    
                    <tr>
                        <td colspan="2" align="center">
                            <input type="submit" value="更改" />
                        </td>
                    </tr>
                </table>
            </form>
        </body>
    </html>
    package cn.edu.aynu.rjxy.servlet;
    
    import java.io.File;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    import cn.edu.aynu.rjxy.bean.Admin;
    import cn.edu.aynu.rjxy.bean.Order;
    import cn.edu.aynu.rjxy.bean.Page;
    import cn.edu.aynu.rjxy.bean.Product;
    import cn.edu.aynu.rjxy.service.AdminService;
    import cn.edu.aynu.rjxy.service.OrderService;
    import cn.edu.aynu.rjxy.service.ProductService;
    import cn.edu.aynu.rjxy.utils.CommonsUtils;
    
    public class AdminServlet extends HttpServlet {
        private AdminService aService = new AdminService();
        private ProductService ps = new ProductService();
        private OrderService os = new OrderService();
        private static final long serialVersionUID = 1L;
        // 上传文件存储目录
        private static final String UPLOAD_DIRECTORY = "img";
        // 上传配置
        private static final int MEMORY_THRESHOLD = 1024 * 1024 * 3; // 3MB
        private static final int MAX_FILE_SIZE = 1024 * 1024 * 40; // 40MB
        private static final int MAX_REQUEST_SIZE = 1024 * 1024 * 50; // 50MB
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            this.doPost(request, response);
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 处理中文乱码
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
            // 获取隐藏字段method的值,并把它转换为int型
            int method = Integer.parseInt(request.getParameter("method"));
    
            switch (method) {
    
            case 1:
                this.login(request, response);
                break;
            case 2:
                this.query(request, response);
                break;
            case 3:
                this.add(request, response);
                break;
            case 4:
                this.loadForUpdate(request, response);
                break;
            case 5:
                this.edit(request, response);
                break;
            case 6:
                this.delete(request, response);
                break;
            case 7:
                this.order(request, response);
                break;
            case 8:
                this.uploadpicture(request, response);
                break;
            case 9:
                this.uploadForpicture(request, response);
                break;
    
            }
    
        }
    
        // 管理员登录
        public void login(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 从请求中解析用户名和密码
            String username = request.getParameter("username");
            String password = request.getParameter("password");
            // 执行加载业务
            Admin a = aService.login(username, password);
            if (a != null) {
                HttpSession session = request.getSession();
                session.setAttribute("userId", a.getId());
                response.getWriter().print("登录成功" + a.getId());
                // 通过请求转发将pb带到list.jsp上去
                request.getRequestDispatcher("/admin/list.jsp").forward(request,
                        response);
            } else {
                response.getWriter().print("登录失败,即将跳转到登录页面,请重新登录......");
                response.setHeader("Refresh", "3;url=/shopping/admin/login.jsp");
    
            }
    
        }
    
        // 管理员查看商品
        public void query(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            // 当前页有一个默认值为1
            int pageCode = 1;
            String s = request.getParameter("pageCode");
            // 如果请求中存在pageCode参数
            if (s != null && !s.trim().isEmpty()) {
                pageCode = Integer.parseInt(s);
            }
            // 查询当前页的记录
            Page pb = ps.queryByPage(pageCode);
            // 将pb保存在request域中
            request.setAttribute("pb", pb);
            // 通过请求转发将pb带到list.jsp上去
            request.getRequestDispatcher("/admin/list.jsp").forward(request,
                    response);
        }
    
        // 管理员添加商品
        public void add(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            // 使用CommonUtils工具类将请求数据封装到bean中
            Product p = CommonsUtils.toBean(request.getParameterMap(),
                    Product.class);
            // 使用UUID作为id属性的值
            p.setId(CommonsUtils.uuid());
            // p.setImgurl(uploadPath);
            // 执行添加
            ps.add(p);
            // 输出添加成功提示
            response.getWriter().print("添加成功");
        }
    
        // 加载商品为修改做准备
        public void loadForUpdate(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
            // 从请求中获取客户的id
            String id = request.getParameter("id");
            // 执行加载业务
            Product p = ps.findById(id);
            // 将Customer对象c保存在request域中
            request.setAttribute("product", p);
            // t=通过请求转发将customer对象显示在list.jsp页面上
            request.getRequestDispatcher("/admin/edit.jsp").forward(request,
                    response);
    
        }
    
        // 管理员修改商品信息
        public void edit(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 使用CommonUtils工具类将请求数据封装到bean中
            Product p = CommonsUtils.toBean(request.getParameterMap(),
                    Product.class);
            // 执行更改业务
            ps.edit(p);
            // 给客户端发送更改成功提示
            response.getWriter().print("更改成功");
    
        }
    
        // 管理员删除商品
        public void delete(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 从请求中获取id
            String id = request.getParameter("id");
            // 执行删除
            ps.delete(id);
            // 给客户端发送删除成功提示
            response.getWriter().print("删除成功");
    
        }
    
        // 管理员查看所有订单
        public void order(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            List<Order> list = os.findAllOrder();
            request.setAttribute("allorderList", list);
            request.getRequestDispatcher("/admin/orderproduct.jsp").forward(
                    request, response);
        }
    
        // 为上传照片做准备
        public void uploadForpicture(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
            String id = request.getParameter("id");
            Product p = ps.findById(id);
            System.out.println(id + "id");
            ps.upload(p, id);
            // 将Customer对象c保存在request域中
            request.setAttribute("product", p);
            // t=通过请求转发将customer对象显示在list.jsp页面上
            request.getRequestDispatcher("/admin/upload.jsp").forward(request,
                    response);
        }
    
        // 管理员上传照片
        public void uploadpicture(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
            // 检测是否为多媒体上传
            if (!ServletFileUpload.isMultipartContent(request)) {
                // 如果不是则停止
                PrintWriter writer = response.getWriter();
                writer.println("Error: 表单必须包含 enctype=multipart/form-data");
                writer.flush();
                return;
            }
    
            // 配置上传参数
            DiskFileItemFactory factory = new DiskFileItemFactory();
            // 设置内存临界值 - 超过后将产生临时文件并存储于临时目录中
            factory.setSizeThreshold(MEMORY_THRESHOLD);
            // 设置临时存储目录
            factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
    
            ServletFileUpload upload = new ServletFileUpload(factory);
    
            // 设置最大文件上传值
            upload.setFileSizeMax(MAX_FILE_SIZE);
    
            // 设置最大请求值 (包含文件和表单数据)
            upload.setSizeMax(MAX_REQUEST_SIZE);
    
            // 构造临时路径来存储上传的文件
            // 这个路径相对当前应用的目录
            String uploadPath = getServletContext().getRealPath("")
                    + File.separator + UPLOAD_DIRECTORY;
            // 如果目录不存在则创建
            File uploadDir = new File(uploadPath);
            if (!uploadDir.exists()) {
                uploadDir.mkdir();
            }
    
            try {
                // 解析请求的内容提取文件数据
                @SuppressWarnings("unchecked")
                List<FileItem> formItems = upload.parseRequest(request);
    
                if (formItems != null && formItems.size() > 0) {
                    // 迭代表单数据
                    for (FileItem item : formItems) {
                        // 处理不在表单中的字段
                        if (!item.isFormField()) {
    
                            Date date = new Date();
                            DateFormat format = new SimpleDateFormat(
                                    "yyyy-MM-dd-HH-mm-ss");
                            String time = format.format(date);
                            String filePath = uploadPath + File.separator + time
                                    + ".jpg";
                            File storeFile = new File(filePath);
                            // 使用CommonUtils工具类将请求数据封装到bean中
                            Product p = CommonsUtils.toBean(request
                                    .getParameterMap(), Product.class);
                            String url = "/" + "shopping" + "/" + UPLOAD_DIRECTORY
                                    + "/" + time + ".jpg";
                            p.setImgurl(url);
                            // 执行更改业务
                            ps.upload(p, p.getId());
    
                            // 在控制台输出文件的上传路径
                             System.out.println(filePath);
                            System.out.println("/" + "shopping" + "/"
                                    + UPLOAD_DIRECTORY + "/" + time + ".jpg");
                            // 保存文件到硬盘
                            item.write(storeFile);
                            request.setAttribute("message", "文件上传成功!");
                        }
                    }
                }
            } catch (Exception ex) {
                request.setAttribute("message", "错误信息: " + ex.getMessage());
            }
            response.getWriter().print("上传成功,三秒后跳转到功能界面......");
            response.setHeader("Refresh", "3;url=/shopping/admin/list.jsp");
        }
    
    }
    package cn.edu.aynu.rjxy.servlet;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import java.util.Map;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import cn.edu.aynu.rjxy.bean.Order;
    import cn.edu.aynu.rjxy.bean.OrderItem;
    import cn.edu.aynu.rjxy.bean.Product;
    import cn.edu.aynu.rjxy.bean.User;
    import cn.edu.aynu.rjxy.service.OrderService;
    import cn.edu.aynu.rjxy.utils.CommonsUtils;
    
    public class OrderServlet extends HttpServlet {
        private OrderService orderService = new OrderService();
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            this.doPost(request, response);
    
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 处理中文乱码
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
            // 获取隐藏字段method的值,并把它转换为int型
            int method = Integer.parseInt(request.getParameter("method"));
    
            switch (method) {
            case 1:
                this.addOrder(request, response);
                break;
            case 2:
                this.findMyOrder(request, response);
                break;
            case 3:
                this.findOrderItem(request, response);
                break;
            case 4:
                this.delete(request, response);
                break;
    
            }
    
        }
    
        // 添加订单和订单项
        public void addOrder(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
            /**
             * 1、判断用户是否登录,如果未登录就重定向到login.jsp 2、使用工具类将订单表中的信息封装成order对象,补全剩余的字段
             * 3、从session中获取购物车,遍历购物车,创建订单项,把它们加入list集合 4、添加订单和订单项
             */
            User user = (User) request.getSession().getAttribute("user");
            if (user == null) {
                response.sendRedirect("jsp/login.jsp");
                return;
            }
            Order order = CommonsUtils.toBean(request.getParameterMap(),
                    Order.class);
            // 补全字段
            order.setId(CommonsUtils.uuid());
            order.setOrdertime(new Date());
            order.setPaysate(0);
            order.setUser_id(user.getId());
            Map<Product, Integer> cart = (Map<Product, Integer>) request
                    .getSession().getAttribute("cart");
            List<OrderItem> list = new ArrayList<OrderItem>();
            for (Product p : cart.keySet()) {
                OrderItem orderItem = new OrderItem();
                orderItem.setId(CommonsUtils.uuid());
                orderItem.setOrder_id(order.getId());
                orderItem.setProduct_id(p.getId());
                orderItem.setBuynum(cart.get(p));
                orderItem.setSubtotal(p.getPrice() * orderItem.getBuynum());
                // 订单项加入list集合
                list.add(orderItem);
            }
            order.setList(list);
            // 添加订单和订单项
            String result = orderService.addOrder(order);
            request.setAttribute("orderResult", result);
            response.getWriter().print("购买成功,三秒后跳转到商品界面......");
            response.setHeader("Refresh", "3;url=/shopping/index.jsp");
        }
    
        // 查看我的订单
        public void findMyOrder(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
            /**
             * 1、用户已经登录,从session中获取用户信息,从用户信息中得到user_id 2、调用方法得到用户的订单的集合
             * 3、通过请求转发将订单集合显示在myorder.jsp页面上
             */
            User user = (User) request.getSession().getAttribute("user");
            String user_id = user.getId();
            List<Order> list = orderService.findMyOrder(user_id);
            request.setAttribute("myorderList", list);
            request.getRequestDispatcher("/jsp/myorder.jsp").forward(request,
                    response);
    
        }
    
        // 查看我的订单的详情
        public void findOrderItem(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
            /**
             * 1、从请求转发中获取订单的id 2、调用方法得到订单详情的集合 3、通过请求转发将订单详情在orderItem.jsp页面上显示
             */
            String order_id = request.getParameter("order_id");
            System.out.println(order_id + "ssssss");
            List<OrderItem> list = orderService.findOrderItem(order_id);
            request.setAttribute("orderItemList", list);
            request.getRequestDispatcher("/jsp/orderitem.jsp").forward(request,
                    response);
    
        }
    
        public void delete(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 从请求中获取id
            String id = request.getParameter("id");
            // 执行删除客户业务
            orderService.delete(id);
            // 给客户端发送删除成功提示
            response.getWriter().print("删除成功,三秒后跳转到功能界面......");
            response.setHeader("Refresh", "3;url=/shopping/admin/list.jsp");
    
        }
    }
    package cn.edu.aynu.rjxy.servlet;
    
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import cn.edu.aynu.rjxy.bean.Product;
    import cn.edu.aynu.rjxy.service.ProductService;
    
    /**
     * 调用ProductService的方法
     * 
     * @author Administrator
     * 
     */
    public class ProductServlet extends HttpServlet {
        private ProductService ps = new ProductService();
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            this.doPost(request, response);
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 处理中文乱码
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
            // 获取隐藏字段method的值,并把它转换为int型
            int method = Integer.parseInt(request.getParameter("method"));
    
            switch (method) {
            case 1:
                this.findAll(request, response);
                break;
            case 2:
                this.addCart(request, response);
                break;
            }
    
        }
    
        // 处理查询所有商品的请求
        public void findAll(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            List<Product> list = ps.findAll();
            request.setAttribute("listProduct", list);
            // 通过请求转发将商品信息显示在product.jsp页面上
            request.getRequestDispatcher("/jsp/product.jsp").forward(request,
                    response);
        }
    
        // 处理添加购物车的请求
        public void addCart(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 获取商品的id
            String id = request.getParameter("id");
            // 得到商品
            Product p = ps.findById(id);
            // 购物车是保存在session中
            HttpSession session = request.getSession();
            // 从session中拿到购物车
            Map<Product, Integer> cart = (Map<Product, Integer>) session
                    .getAttribute("cart");
            // 如果cart不存在,就创建购物车
            if (cart == null) {
                cart = new HashMap<Product, Integer>();
            }
            /**
             * 遍历Map中的所有key也就是商品对象,如果发现有的商品的id和 即将加入购物车的id相同,就在原来的数量上+1
             */
            Iterator<Product> it = cart.keySet().iterator();
            boolean f = true;
            while (it.hasNext()) {
                Product pp = (Product) it.next();
                if (pp.getId().equals(p.getId())) {
                    cart.put(pp, cart.get(pp) + 1);
                    f = false;
                }
            }
            // 如果没有发现购物车原来相同的商品,就直接加入
            if (f) {
                cart.put(p, 1);
            }
            // 将cart放入session
            session.setAttribute("cart", cart);
            // 重定向
            response.sendRedirect("jsp/cart.jsp");
    
        }
    
    }
    package cn.edu.aynu.rjxy.servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import cn.edu.aynu.rjxy.bean.User;
    import cn.edu.aynu.rjxy.exception.UserException;
    import cn.edu.aynu.rjxy.service.UserService;
    import cn.edu.aynu.rjxy.utils.CommonsUtils;
    
    /**
     * 调用UserService里面的方法
     * 
     * @author Administrator
     * 
     */
    public class UserServlet extends HttpServlet {
    
        private UserService userService = new UserService();
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            this.doPost(request, response);
    
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 处理中文乱码
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
            // 获取隐藏字段method的值,并把它转换为int型
            int method = Integer.parseInt(request.getParameter("method"));
    
            switch (method) {
            case 1:
                this.register(request, response);
                break;
            case 2:
                this.login(request, response);
                break;
    
            }
        }
    
        public void register(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
            /**
             * 1、将注册表单中的用户信息封装到user对象中 2、将获取的UUID值作为user对象的id
             * 3、注册,如果发生异常,就到register.jsp页面上显示:用户已存在 如果成功,显示注册成功,3秒后就跳转到index.jsp页面。
             */
            User user = CommonsUtils.toBean(request.getParameterMap(), User.class);
            user.setId(CommonsUtils.uuid());
            try {
                userService.register(user);
                request.setAttribute("msg", "注册成功");
                request.getRequestDispatcher("/jsp/index.jsp").forward(request,
                        response);
            } catch (UserException e) {
                request.setAttribute("msg", e.getMessage());
                // 将用户在注册表单中输入的信息保存在request域中,请求转发的register.jsp,目的回显
                request.setAttribute("user", user);
                request.getRequestDispatcher("/jsp/register.jsp").forward(request,
                        response);
            }
        }
    
        public void login(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            /**
             * 1、将用户登录表单中的信息封装成User对象 2、登录,如果发生异常,就转发到login.jsp页面,显示:异常信息
             * 如果成功,就将查询到的user对象u,存放到session域中 然后转发到shopping.jsp页面,显示:欢迎用户登录
             */
            User user = CommonsUtils.toBean(request.getParameterMap(), User.class);
            System.out.println(user + "-------->");
            try {
                User u = userService.login(user);
                System.out.println(u + ">>>>");
                // 将u存放到session域中
                request.getSession().setAttribute("user", u);
                request.getRequestDispatcher("/jsp/index.jsp").forward(request,
                        response);
            } catch (UserException e) {
                request.setAttribute("msg", e.getMessage());
                request.setAttribute("user", user); // 回显
                request.getRequestDispatcher("/jsp/login.jsp").forward(request,
                        response);
            }
        }
    }
    package cn.edu.aynu.rjxy.service;
    
    import java.sql.SQLException;
    
    import cn.edu.aynu.rjxy.bean.Admin;
    import cn.edu.aynu.rjxy.dao.AdminDao;
    
    public class AdminService {
        private AdminDao aDao = new AdminDao();
    
        /**
         * 根据用户名和密码查询用户
         * 
         * @param cid
         */
        public Admin login(String username, String password) {
            try {
                return aDao.findByCid(username, password);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    }
    package cn.edu.aynu.rjxy.service;
    
    import java.sql.SQLException;
    import java.util.List;
    
    import cn.edu.aynu.rjxy.bean.Order;
    import cn.edu.aynu.rjxy.bean.OrderItem;
    import cn.edu.aynu.rjxy.dao.OrderDao;
    import cn.edu.aynu.rjxy.dao.OrderItemDao;
    import cn.edu.aynu.rjxy.utils.JDBCUtils;
    
    /**
     * 调用dao里面的方法
     * 
     * @author Administrator
     * 
     */
    public class OrderService {
        private OrderDao orderDao = new OrderDao();
        private OrderItemDao orderItemDao = new OrderItemDao();
    
        // 添加订单和订单项
        public String addOrder(Order order) {
            try {
                // 开启事物
                JDBCUtils.startTransaction();
                // 添加订单
                orderDao.add(order);
                // 获取订单项的集合
                List<OrderItem> list = order.getList();
                // 遍历订单项目,依次将它们插入orderitem表中
                for (OrderItem orderItem : list) {
                    // 添加订单项
                    orderItemDao.addItem(orderItem);
                }
                // 提交事务
                JDBCUtils.commit();
                return "success";
            } catch (Exception e) {
                // 回滚事务
                JDBCUtils.rollback();
                e.printStackTrace();
                return "fail";
            }
        }
    
        // 查看所有的订单
        public List<Order> findAllOrder() {
            try {
                return orderDao.findAllOrder();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    
        // 查看我的订单
        public List<Order> findMyOrder(String user_id) {
            try {
                return orderDao.findOrderByUser_id(user_id);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    
        // 查看某个订单
        public List<OrderItem> findOrderItem(String order_id) {
            try {
                return orderItemDao.findOrderItem(order_id);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    
        // 删除某个订单
        public void delete(String id) {
            try {
                orderDao.deleteById(id);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    }
    package cn.edu.aynu.rjxy.service;
    
    import java.sql.SQLException;
    import java.util.List;
    
    import cn.edu.aynu.rjxy.bean.Page;
    import cn.edu.aynu.rjxy.bean.Product;
    import cn.edu.aynu.rjxy.dao.ProductDao;
    
    /**
     * 调用ProductDao的方法
     * 
     * @author Administrator
     * 
     */
    public class ProductService {
        private ProductDao pDao = new ProductDao();
    
        /**
         * 添加商品
         * 
         * @param c
         */
        public void add(Product p) {
            try {
                pDao.insert(p);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        //上传照片
        public  void upload(Product p,String id){
            try {
                pDao.insertURL(p, id);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        /**
         * 删除客户业务
         */
        public void delete(String cid) {
            try {
                pDao.delete(cid);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    
        /**
         * 编辑修改商品
         * 
         * @param c
         */
        public void edit(Product p) {
            try {
                pDao.update(p);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    
        // 查询所有商品
        public List<Product> findAll() {
            try {
                return pDao.findAll();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    
        // 查看某一商品
        public Product findById(String id) {
            try {
                return pDao.findProductById(id);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    
        /**
         * 分页查询
         * 
         * @param pageCode
         * @return
         */
        public Page queryByPage(int pageCode) {
            try {
                // 获取总记录数
                int totalRecord = pDao.queryTotalRecord();
                // 创建Page
                Page pb = new Page(pageCode, totalRecord);
                // 查询当前页的记录
                List<Product> datas = pDao.queryByPage((pageCode - 1)
                        * pb.getPageSize(), pb.getPageSize());
                // 将datas封装到pb
                pb.setDatas(datas);
                return pb;
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    }
    package cn.edu.aynu.rjxy.service;
    
    import java.sql.SQLException;
    
    import cn.edu.aynu.rjxy.bean.User;
    import cn.edu.aynu.rjxy.dao.UserDao;
    import cn.edu.aynu.rjxy.exception.UserException;
    
    /**
     * 调用dao层的方法
     * 
     * @author Administrator
     * 
     */
    public class UserService {
        private UserDao userDao = new UserDao();
    
        /**
         * 用户注册 1、检测输入的用户名是否存在,如果存在抛出异常“用户已存在” 2、把输入的用户添加到数据库中的user表
         * 
         * @throws UserException
         */
        public void register(User user) throws UserException {
            try {
                // 检测用户是否存在
                User u = userDao.findByUsername(user.getUsername());
                // 如果存在抛出异常否则添加用户到user表
                if (u != null) {
                    throw new UserException("用户已经存在");
                } else {
                    userDao.add(user);
                }
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    
        /**
         * 用户登录
         * 
         * @throws UserException
         */
        public User login(User user) throws UserException {
            try {
                // 根据用户名查询user表得到user对象u
                User u = userDao.findByUsername(user.getUsername());
                /**
                 * 如果u为null,说明用户不存在,抛出异常,显示用户不存在 否则说明用户存在,检测u对象中的密码和用户输入的面貌是否一致
                 * 如果一致,返回查询到的u否则抛出异常,显示密码错误
                 */
                if (u == null) {
                    throw new UserException("用户名不存在");
                }
                // 查询到的用户密码和用户名输入的密码不一致
                if (!u.getPassword().equals(user.getPassword())) {
                    throw new UserException("密码错误");
                }
                return u;
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
    
        }
    }
    package cn.edu.aynu.rjxy.dao;
    
    import java.sql.SQLException;
    
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.BeanHandler;
    
    import cn.edu.aynu.rjxy.bean.Admin;
    import cn.edu.aynu.rjxy.utils.JDBCUtils;
    
    /**
     * 对管理员表的操作
     * 
     * @author Administrator
     * 
     */
    public class AdminDao {
        QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
    
        /**
         * 根据用户名和用户密码查询
         * 
         * @return
         * @throws SQLException
         */
        public Admin findByCid(String username, String password)
                throws SQLException {
            String sql = "select * from admin where username=?&&password=?";
            Admin admin = qr.query(sql, new BeanHandler<Admin>(Admin.class),
                    username, password);
            return admin;
        }
    }
    package cn.edu.aynu.rjxy.dao;
    
    import java.sql.Connection;
    import java.sql.Date;
    import java.sql.SQLException;
    import java.util.List;
    
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.BeanListHandler;
    
    import cn.edu.aynu.rjxy.bean.Order;
    import cn.edu.aynu.rjxy.utils.JDBCUtils;
    
    /**
     * 对order1表的操作
     * 
     * @author Administrator
     * 
     */
    public class OrderDao {
        private QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
    
        // 添加订单到数据库表order1中
        public void add(Order order) throws Exception {
            Connection conn = JDBCUtils.getConnection();
            String sql = "insert into order1 values(?,?,?,?,?,?,?,?)";
            // 订单生成时间,由java.util.Date----->java.sql.Date
            Date date = new Date(order.getOrdertime().getTime());
            qr.update(conn, sql, order.getId(), order.getTotalMoney(), order
                    .getReceiverAddress(), order.getReceiverName(), order
                    .getReceiverPhone(), order.getPaysate(), date, order
                    .getUser_id());
    
        }
    
        // 查看所有用户的订单
        public List<Order> findAllOrder() throws SQLException {
            String sql = "select * from order1";
            return qr.query(sql, new BeanListHandler<Order>(Order.class));
        }
    
        // 根据user_id查看用户的订单
        public List<Order> findOrderByUser_id(String user_id) throws SQLException {
            String sql = "select * from order1 where user_id = ?";
            return qr.query(sql, new BeanListHandler<Order>(Order.class), user_id);
        }
    
        // 根据user_id删除用户的订单
        public void deleteById(String id) throws SQLException {
            String sql = "delete from order1 where id=?";
            qr.update(sql, id);
        }
    }
    package cn.edu.aynu.rjxy.dao;
    
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.List;
    
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.BeanListHandler;
    
    import cn.edu.aynu.rjxy.bean.OrderItem;
    import cn.edu.aynu.rjxy.bean.Product;
    import cn.edu.aynu.rjxy.utils.JDBCUtils;
    
    /**
     * 对orderItem表的操作
     * 
     * @author Administrator
     * 
     */
    public class OrderItemDao {
        private QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
    
        // 添加订单项到数据库表orderitem中
        public void addItem(OrderItem orderItem) throws Exception {
            Connection conn = JDBCUtils.getConnection();
            String sql = "insert into orderitem values(?,?,?,?,?)";
            qr.update(conn, sql, orderItem.getId(), orderItem.getOrder_id(),
                    orderItem.getProduct_id(), orderItem.getBuynum(), orderItem
                            .getSubtotal());
        }
    
        // 查询某一个订单的所有订单项
        public List<OrderItem> findOrderItem(String order_id) throws SQLException {
            // 查询某一订单所包含的订单项
            String sql = "select * from orderitem where order_id = ?";
            List<OrderItem> orderItemList = qr.query(sql,
                    new BeanListHandler<OrderItem>(OrderItem.class), order_id);
            // 查询某一订单所包含的订单项对应的商品信息
            sql = "select p.id,p.name,p.price from product p,orderitem oi where p.id = oi.product_id  and  order_id = ?";
            List<Product> productList = qr.query(sql, new BeanListHandler<Product>(
                    Product.class), order_id);
            // 将查询出来的商品作为订单项的属性进行添加
            for (OrderItem oi : orderItemList) {
                for (Product p : productList) {
                    if (oi.getProduct_id().equals(p.getId())) {
                        oi.setProduct(p);
                    }
                }
            }
            return orderItemList;
        }
    }
    package cn.edu.aynu.rjxy.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 org.apache.commons.dbutils.handlers.ScalarHandler;
    
    import cn.edu.aynu.rjxy.bean.Product;
    import cn.edu.aynu.rjxy.utils.JDBCUtils;
    
    /**
     * 对product表进行增删改查
     * 
     * @author Administrator
     * 
     */
    public class ProductDao {
        QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
    
        /**
         * 添加商品
         * 
         * @param c
         * @throws SQLException
         */
        public void insert(Product p) throws SQLException {
            String sql = "insert into product(id,name,price,category,pnum,description) values(?,?,?,?,?,?)";
            qr.update(sql, p.getId(), p.getName(), p.getPrice(), p.getCategory(), p
                    .getPnum(),  p.getDescription());
        }
        
        public void insertURL(Product p,String id) throws SQLException {
            String sql = "update product set imgurl = ? where id =?";
            qr.update(sql, p.getImgurl(),id);
        }
    
        // 查询所有商品
        public List<Product> findAll() throws SQLException {
            String sql = "select * from product";
            List<Product> list = qr.query(sql, new BeanListHandler<Product>(
                    Product.class));
            return list;
        }
    
        // 根据id查找商品
        public Product findProductById(String id) throws SQLException {
            String sql = "select * from product where id=?";
            return qr.query(sql, new BeanHandler<Product>(Product.class), id);
        }
    
        /**
         * 根据传过来的id,删除商品
         * 
         * @throws SQLException
         * 
         */
        public void delete(String id) throws SQLException {
            String sql = "delete from product where id=?";
            qr.update(sql, id);
        }
    
        /**
         * 修改商品属性
         * 
         * @throws SQLException
         */
        public void update(Product p) throws SQLException {
            String sql = "update product set name=?,price=?,category=?,pnum=?,imgurl=?,description=? where id=?";
            qr.update(sql, p.getName(), p.getPrice(), p.getCategory(), p.getPnum(),
                    p.getImgurl(), p.getDescription(), p.getId());
        }
    
        /**
         * 查询总记录数
         * 
         * @throws SQLException
         * 
         */
        public int queryTotalRecord() throws SQLException {
            String sql = "select count(*) from product";
            Long num = qr.query(sql, new ScalarHandler<Long>());
            return num.intValue();
        }
    
        /**
         * 分页查询
         * 
         * @throws SQLException
         * 
         */
        public List<Product> queryByPage(int recordStartIndex, int pageSize)
                throws SQLException {
            String sql = "select * from product limit ?,?";
            List<Product> datas = qr.query(sql, new BeanListHandler<Product>(
                    Product.class), recordStartIndex, pageSize);
            return datas;
        }
    }
    package cn.edu.aynu.rjxy.dao;
    
    import java.sql.SQLException;
    
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.BeanHandler;
    
    import cn.edu.aynu.rjxy.bean.User;
    import cn.edu.aynu.rjxy.utils.JDBCUtils;
    
    /**
     * 对User表的操作
     * 
     * @author Administrator
     * 
     */
    public class UserDao {
        QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
    
        /**
         * 添加用户到user表
         * 
         * @throws SQLException
         */
        public void add(User user) throws SQLException {
            String sql = "insert into user(id,username,password) values(?,?,?)";
            qr.update(sql, user.getId(), user.getUsername(), user.getPassword());
        }
    
        /**
         * 通过用户名查找用户
         * 
         * @throws SQLException
         */
        public User findByUsername(String username) throws SQLException {
            String sql = "select * from user where username = ?";
            User user = qr.query(sql, new BeanHandler<User>(User.class), username);
            return user;
        }
    }

    http://lijun0349-163-com.iteye.com/blog/2008680

    http://blog.sina.com.cn/s/blog_ae96abfd0101p9bf.html

  • 相关阅读:
    Dojo(发音:豆粥)的目标是解决DHTML应用程序长期存在的历史问题
    如何用Fireworks制作图标的透明效果
    2021.09.15膜你赛
    2021.09.14 膜你赛
    2021.08.29 膜你赛
    2021.08.28 膜你赛
    2021.10.06 膜你赛
    2021.09.18 膜你赛
    2021.09.13膜你赛
    2021.10.05膜你赛
  • 原文地址:https://www.cnblogs.com/kangyaping/p/6165842.html
Copyright © 2020-2023  润新知