• 客户关系管理增删改


    servlet:

    package cn.itcast.cstm.web.servlet;
    
    import java.io.IOException;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import cn.itcast.commons.CommonUtils;
    import cn.itcast.cstm.domain.Customer;
    import cn.itcast.cstm.service.CustomerService;
    import cn.itcast.servlet.BaseServlet;
    
    /**
     * Web层
     * @author cxf
     *
     */
    public class CustomerServlet extends BaseServlet {
        private CustomerService customerService = new CustomerService();
        
        /**
         * 添加客户
         */
        public String add(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            /*
             * 1. 封装表单数据到Customer对象
             * 2. 补全:cid,使用uuid
             * 3. 使用service方法完成添加工作
             * 4. 向request域中保存成功信息
             * 5. 转发到msg.jsp
             */
            Customer c = CommonUtils.toBean(request.getParameterMap(), Customer.class);
            c.setCid(CommonUtils.uuid());
            customerService.add(c);
            request.setAttribute("msg", "恭喜,添加客户成功!");
            return "f:/msg.jsp";
        }
        
        /**
         * 查询所有
         * @param request
         * @param response
         * @return
         * @throws ServletException
         * @throws IOException
         */
        public String findAll(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            /*
             * 1. 调用service得到所有客户
             * 2. 保存到request域
             * 3. 转发到list.jsp
             */
            request.setAttribute("cstmList", customerService.findAll());
            return "f:/list.jsp";
        }
        
        /**
         * 编辑之前的加载工作
         * @param request
         * @param response
         * @return
         * @throws ServletException
         * @throws IOException
         */
        public String preEdit(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            /*
             * 1. 获取cid
             * 2. 使用cid来调用service方法,得到Customer对象
             * 3. 把Customer保存到request域中
             * 4. 转发到edit.jsp显示在表单中
             */
            String cid = request.getParameter("cid");
            Customer cstm = customerService.load(cid);
            request.setAttribute("cstm", cstm);
            return "f:/edit.jsp";
        }
        
        /**
         * 编辑方法
         * @param request
         * @param response
         * @return
         * @throws ServletException
         * @throws IOException
         */
        public String edit(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            /*
             * 1. 封装表单数据到Customer对象中
             * 2. 调用service方法完成修改
             * 3. 保存成功信息到request域
             * 4. 转发到msg.jsp显示成功信息
             */
            // 已经封装了cid到Customer对象中
            Customer c = CommonUtils.toBean(request.getParameterMap(), Customer.class);
            customerService.edit(c);
            request.setAttribute("msg", "恭喜,编辑客户成功!");
            return "f:/msg.jsp";
        }
        
        public String query(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            /*
             * 1. 封装表单数据到Customer对象中,它只有四个属性(cname、gender、cellphone、email)
             *   它就是一个条件
             * 2. 使用Customer调用service方法,得到List<Customer>
             * 3. 保存到request域中
             * 4. 转发到list.jsp
             */
            Customer criteria = CommonUtils.toBean(request.getParameterMap(), Customer.class);
            List<Customer> cstmList = customerService.query(criteria);
            request.setAttribute("cstmList", cstmList);
            return "/list.jsp";
        }
    }

    DAO:






    DAO:

    package
    cn.itcast.cstm.dao; import java.sql.SQLException; import java.util.ArrayList; 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 cn.itcast.cstm.domain.Customer; import cn.itcast.jdbc.TxQueryRunner; /** * 持久层 * * @author cxf * */ public class CustomerDao { private QueryRunner qr = new TxQueryRunner(); /** * 添加客户 * * @param c */ public void add(Customer c) { try { String sql = "insert into t_customer values(?,?,?,?,?,?,?)"; Object[] params = { c.getCid(), c.getCname(), c.getGender(), c.getBirthday(), c.getCellphone(), c.getEmail(), c.getDescription()}; qr.update(sql, params); } catch(SQLException e) { throw new RuntimeException(e); } } /** * 查询所有 * @return */ public List<Customer> findAll() { try { String sql = "select * from t_customer"; return qr.query(sql, new BeanListHandler<Customer>(Customer.class)); } catch(SQLException e) { throw new RuntimeException(e); } } /** * 加载客户 * @param cid * @return */ public Customer load(String cid) { try { String sql = "select * from t_customer where cid=?"; return qr.query(sql, new BeanHandler<Customer>(Customer.class), cid); } catch(SQLException e) { throw new RuntimeException(e); } } /** * 编辑客户 * @param c */ public void edit(Customer c) { try { String sql = "update t_customer set cname=?,gender=?,birthday=?," + "cellphone=?,email=?,description=? where cid=?"; Object[] params = {c.getCname(), c.getGender(), c.getBirthday(), c.getCellphone(), c.getEmail(), c.getDescription(), c.getCid()}; qr.update(sql, params); } catch(SQLException e) { throw new RuntimeException(e); } } /** * 多条件组合查询 * @param criteria * @return */ public List<Customer> query(Customer criteria) { try { /* * 1. 给出sql模板 * 2. 给出参数 * 3. 调用query方法,使用结果集处理器:BeanListHandler */ /* * 一、 给出sql模板 * 二、 给出参数! */ /* * 1. 给出一个sql语句前半部 */ StringBuilder sql = new StringBuilder("select * from t_customer where 1=1"); /* * 2. 判断条件,完成向sql中追加where子句 */ /* * 3. 创建一个ArrayList,用来装载参数值 */ List<Object> params = new ArrayList<Object>(); String cname = criteria.getCname(); if(cname != null && !cname.trim().isEmpty()) { sql.append(" and cname like ?"); params.add("%" + cname + "%"); } String gender = criteria.getGender(); if(gender != null && !gender.trim().isEmpty()) { sql.append(" and gender=?"); params.add(gender); } String cellphone = criteria.getCellphone(); if(cellphone != null && !cellphone.trim().isEmpty()) { sql.append(" and cellphone like ?"); params.add("%" + cellphone + "%"); } String email = criteria.getEmail(); if(email != null && !email.trim().isEmpty()) { sql.append(" and email like ?"); params.add("%" + email + "%"); } /* * 三、执行query */ return qr.query(sql.toString(), new BeanListHandler<Customer>(Customer.class), params.toArray()); } catch(SQLException e) { throw new RuntimeException(e); } } }

    jsp:添加:

    <form action="<c:url value='/CustomerServlet'/>" method="post">
    <!-- 向servlet传递一个名为method的参数,其值表示要调用servlet的哪一个方法 -->
    <input type="hidden" name="method" value="add"/>

    编辑:

    注意要把cid传过去:

    <%--
    要调用CustomerServlet#edit
    要传递cid
     --%>
    <form action="<c:url value='/CustomerServlet'/>" method="post">
        <input type="hidden" name="method" value="edit"/>
        <input type="hidden" name="cid" value="${cstm.cid }"/>

    list.jsp

    <c:forEach items="${requestScope.cstmList}" var="cstm">
        <tr>
            <td>${cstm.cname }</td>
            <td>${cstm.gender }</td>
            <td>${cstm.birthday }</td>
            <td>${cstm.cellphone }</td>
            <td>${cstm.email }</td>
            <td>${cstm.description }</td>
            <td>
                <a href="<c:url value='/CustomerServlet?method=preEdit&cid=${cstm.cid }'/>">编辑</a>
                <a href="<c:url value='/msg.jsp'/>">删除</a>
            </td>
        </tr>
    </c:forEach>

    msg.jsp

      <h1 style="color:green;" align="center">${msg }</h1>

    query.jsp

    <h3 align="center">高级搜索</h3>
    <form action="<c:url value='/CustomerServlet'/>" method="post">
        <input type="hidden" name="method" value="query"/>

    top.jsp

    <body style="text-align: center;">
          <h1>客户关系管理系统</h1>
        <a href="<c:url value='/add.jsp'/>">添加客户</a>  | 
        <a href="<c:url value='/CustomerServlet?method=findAll'/>">查询客户</a> | 
        <a href="<c:url value='/query.jsp'/>">高级搜索</a>  
      </body>
  • 相关阅读:
    Android中的“再按一次返回键退出程序”代码实现
    Android UI编程之自定义控件初步——ImageButton
    21岁,我想当“大帅”
    茑萝改变了我
    茑萝,梦想的加油站
    放弃了我的国企工作
    性能调优之访问日志IO性能优化
    性能调优之提高 ASP.NET Web 应用性能的 24 种方法和技巧
    性能调优之剖析OutOfMemoryError
    老李分享:单元测试检查清单:让测试有效,避免致命错误
  • 原文地址:https://www.cnblogs.com/xiaoxiao5ya/p/4914553.html
Copyright © 2020-2023  润新知