大数据实训第一天

数据库增删改查:

c3p0-config.xml

    <?xml version="1.0" encoding="utf-8" ?>
    <c3p0-config>
        <default-config>
            <property name="jdbcUrl">jdbc:mysql://localhost:3306/customer</property>
            <property name="driverClass">com.mysql.jdbc.Driver</property>
            <!--这里是你自己的连接数据库的用户名-->
            <property name="user">root</property>
            <!--这里是你自己的连接数据库的密码-->
            <property name="password">123</property>
            <property name="acquireIncrement">3</property>
            <property name="initialPoolSize">10</property>
            <property name="minPoolSize">2</property>
            <property name="maxPoolSize">10</property>
        </default-config>
    </c3p0-config>

CustomerDao.java

    package dao;
     
    import cn.itcast.jdbc.TxQueryRunner;
    import domain.Customer;
    import domain.PageBean;
    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 java.util.ArrayList;
    import java.util.List;
     
     
    public class CustomerDao
    {
        private QueryRunner qr=new TxQueryRunner();
     
        public void add(Customer c)
        {
            try {
                String sql = "insert into t_customer values(?,?,?,?,?,?)";
                Object[] params = {c.getId(), c.getName(), c.getGender(),
                        c.getPhone(), c.getEmail(), c.getDescription()};
     
                qr.update(sql, params);
            }catch (Exception e)
            {
                throw new RuntimeException(e);
            }
        }
     
    //    public List<Customer> findAll()
    //    {
    //        try{
    //            String sql="select * from t_customer";
    //            return qr.query(sql,new BeanListHandler<Customer>(Customer.class));
    //        }catch (Exception e)
    //        {
    //            throw new RuntimeException(e);
    //        }
    //    }
        public PageBean<Customer> findAll(int pc, int pr)
        {
            try{
                /*
                 *1.他需要创建pageBean对象pb
                 * 2.设置pb的pc和pr
                 * 3.得到tr,设置给pb
                 * 4.得到beanList设置给pb
                 * 最后返回给pb
                 */
                PageBean<Customer> pb=new PageBean<>();
                pb.setPc(pc);
                pb.setPr(pr);
     
                String sql="select count(*) from t_customer";
                Number number=(Number) qr.query(sql,new ScalarHandler<>());
     
                int tr=number.intValue();
                pb.setTr(tr);
     
                sql="select * from t_customer order by name limit ?,?";
                Object[] params={(pc-1)*pr,pr};
                List<Customer> beanList=qr.query(sql,new BeanListHandler<>(Customer.class),params);
     
                pb.setBeanList(beanList);
     
                return pb;
            }catch (Exception e)
            {
                throw new RuntimeException(e);
            }
        }
     
        public Customer find(String id)
        {
            try {
                String sql = "select * from t_customer where id=?";
                return qr.query(sql, new BeanHandler<Customer>(Customer.class), id);
            }catch (Exception e)
            {
                throw new RuntimeException(e);
            }
        }
     
        public void edit(Customer customer)
        {
            try{
                String sql="update t_customer set name=?,gender=?,phone=?,email=?,description=? where id=?";
                Object[] params={customer.getName(),customer.getGender(),customer.getPhone(),customer.getEmail(),customer.getDescription(),customer.getId()};
     
                qr.update(sql,params);
            }catch (Exception e)
            {
                throw new RuntimeException(e);
            }
        }
     
        public void delete(String id)
        {
            try {
                String sql = "delete from t_customer where id=?";
     
                qr.update(sql, id);
            }catch (Exception e)
            {
                throw new RuntimeException(e);
            }
        }
     
    //    public List<Customer> query(Customer customer) {
    //
    //        try {
    //            StringBuilder sql = new StringBuilder("select * from t_customer where 1=1 ");
    //            List<Object> params = new ArrayList<>();
    //
    //            String name = customer.getName();
    //            if (name != null && !name.trim().isEmpty()) {
    //                sql.append("and name like ?");
    //                params.add("%"+name+"%");
    //            }
    //
    //            String gender = customer.getGender();
    //            if (gender != null && !gender.trim().isEmpty()) {
    //                sql.append("and gender=?");
    //                params.add(gender);
    //            }
    //
    //            String phone = customer.getPhone();
    //            if (phone != null && !phone.trim().isEmpty()) {
    //                sql.append("and phone like ?");
    //                params.add("%"+phone+"%");
    //            }
    //
    //            String email = customer.getEmail();
    //            if (email != null && !email.trim().isEmpty()) {
    //                sql.append("and email like ?");
    //                params.add("%"+email+"%");
    //            }
    //
    //            return qr.query(sql.toString(), new BeanListHandler<Customer>(Customer.class), params.toArray());
    //        }catch (Exception e)
    //        {
    //            throw new RuntimeException(e);
    //        }
    //
    //
    //    }
     
        public PageBean<Customer> query(Customer customer,int pc,int pr) {
     
     
            try {
                PageBean<Customer> pb=new PageBean<>();
                pb.setPc(pc);
                pb.setPr(pr);
     
                StringBuilder cntSql = new StringBuilder("select count(*) from t_customer ");
                StringBuilder whereSql=new StringBuilder(" where 1=1 ");
                List<Object> params = new ArrayList<>();
     
                String name = customer.getName();
                if (name != null && !name.trim().isEmpty()) {
                    whereSql.append("and name like ?");
                    params.add("%"+name+"%");
                }
     
                String gender = customer.getGender();
                if (gender != null && !gender.trim().isEmpty()) {
                    whereSql.append("and gender=?");
                    params.add(gender);
                }
     
                String phone = customer.getPhone();
                if (phone != null && !phone.trim().isEmpty()) {
                    whereSql.append("and phone like ?");
                    params.add("%"+phone+"%");
                }
     
                String email = customer.getEmail();
                if (email != null && !email.trim().isEmpty()) {
                    whereSql.append("and email like ?");
                    params.add("%"+email+"%");
                }
     
                Number num=qr.query(cntSql.append(whereSql).toString(),new ScalarHandler<>(),params.toArray());
     
                int tr=num.intValue();
                pb.setTr(tr);
     
                StringBuilder sql=new StringBuilder("select * from t_customer ");
                StringBuilder lmitSql=new StringBuilder(" limit ?,?");
     
                params.add((pc-1)*pr);
                params.add(pr);
     
                List<Customer> beanList=qr.query(sql.append(whereSql).append(lmitSql).toString(),new BeanListHandler<Customer>(Customer.class),params.toArray());
                pb.setBeanList(beanList);
     
                return pb;
            }catch (Exception e)
            {
                throw new RuntimeException(e);
            }
     
        }
    }

Customer

    package domain;
     
     
    public class Customer
    {
        private String id;
        private String name;
        private String gender;
        private String phone;
        private String email;
        private String description;
     
        public String getId() {
            return id;
        }
     
        public void setId(String id) {
            this.id = id;
        }
     
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
     
        public String getGender() {
            return gender;
        }
     
        public void setGender(String gender) {
            this.gender = gender;
        }
     
        public String getPhone() {
            return phone;
        }
     
        public void setPhone(String phone) {
            this.phone = phone;
        }
     
        public String getEmail() {
            return email;
        }
     
        public void setEmail(String email) {
            this.email = email;
        }
     
        public String getDescription() {
            return description;
        }
     
        public void setDescription(String description) {
            this.description = description;
        }
    }

PageBean

    package domain;
     
    import java.util.List;
     
     
    public class PageBean<Object>
    {
        private int pc;//当前页码page code
        //private int tp;//总页数total pages
     
     
     
        private int tr;//总纪录数tatal records
        private int pr;//每页纪录数page records
        private List<Object> beanList;//当前页的纪录
        private String url;
     
        public String getUrl() {
            return url;
        }
     
        public void setUrl(String url) {
            this.url = url;
        }
     
        public int getPc() {
            return pc;
        }
     
        public void setPc(int pc) {
            this.pc = pc;
        }
     
        public int getTp()
        {
            int tp=tr/pr;
            return tr % pr == 0 ? tp : tp + 1 ;
        }
     
     
     
        public int getTr() {
            return tr;
        }
     
        public void setTr(int tr) {
            this.tr = tr;
        }
     
        public int getPr() {
            return pr;
        }
     
        public void setPr(int pr) {
            this.pr = pr;
        }
     
        public List<Object> getBeanList() {
            return beanList;
        }
     
        public void setBeanList(List<Object> beanList) {
            this.beanList = beanList;
        }
    }

CustomerServlet

    package servlet;
     
    import cn.itcast.commons.CommonUtils;
    import cn.itcast.servlet.BaseServlet;
    import domain.Customer;
    import domain.PageBean;
    import service.CustomerService;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
     
     
    public class CustomerServlet extends BaseServlet {
     
        private CustomerService customerService = new CustomerService();
     
        public String add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
            Customer customer = CommonUtils.toBean(request.getParameterMap(), Customer.class);
            customer.setId(CommonUtils.uuid());
     
            customerService.add(customer);
     
            request.setAttribute("msg", "恭喜,成功添加客户");
     
            return "/msg.jsp";
        }
     
    //    public String findAll(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //        List<Customer> customers = customerService.findAll();
    //
    //        request.setAttribute("cstmList", customers);
    //
    //        return "/list.jsp";
    //    }
     
        public String findAll(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
           /*
            *1.获取页面传递的pc
            * 2.给定pr的值
            * 3.使用pc和pr调用service方法,得到pageBean,保存到request域
            * 4.转发到list.jsp
            */
           /*
            * 1.得到pc
            *   如果pc参数不存在,说明pc=1
            *   如果pc参数存在,需要转换成int类型
            */
            int pc = getPc(request);
     
            int pr = 10;//给定pr的值,每页10行纪录
     
            PageBean<Customer> pb = customerService.findAll(pc, pr);
            pb.setUrl(getUrl(request));
     
            request.setAttribute("pb", pb);
     
            return "f:/list.jsp";
        }
     
        private int getPc(HttpServletRequest request) {
            String value = request.getParameter("pc");
            if (value == null || value.trim().isEmpty()) {
                return 1;
            }
            return Integer.parseInt(value);
        }
     
        public String preEdit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String id = request.getParameter("id");
            Customer customer = customerService.find(id);
     
            request.setAttribute("customer", customer);
     
            return "/edit.jsp";
        }
     
        public String edit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
            Customer customer = CommonUtils.toBean(request.getParameterMap(), Customer.class);
     
            customerService.edit(customer);
     
            request.setAttribute("msg", "恭喜,编辑客户成功");
            return "/msg.jsp";
        }
     
        public String delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
            String id = request.getParameter("id");
     
            customerService.delete(id);
     
            request.setAttribute("msg", "恭喜,删除客户成功");
     
            return "/msg.jsp";
        }
     
    //    public String query(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //
    //        Customer customer=CommonUtils.toBean(request.getParameterMap(),Customer.class);
    //
    //        List<Customer> customers=customerService.query(customer);
    //
    //        request.setAttribute("cstmList",customers);
    //
    //        return "/list.jsp";
    //
    //    }
     
        public String query(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
            Customer customer = CommonUtils.toBean(request.getParameterMap(), Customer.class);
     
    //        System.out.println(getUrl(request));
            customer = encoding(customer);
     
            int pc = getPc(request);
            int pr = 10;
     
            PageBean<Customer> pb = customerService.query(customer, pc, pr);
     
            pb.setUrl(getUrl(request));
     
            request.setAttribute("pb", pb);
            return "/list.jsp";
     
        }
     
        private Customer encoding(Customer customer) throws UnsupportedEncodingException {
            String name = customer.getName();
            String gender = customer.getGender();
            String phone = customer.getPhone();
            String email = customer.getEmail();
     
            if (name != null && !name.trim().isEmpty()) {
                name = new String(name.getBytes("ISO-8859-1"), "utf-8");
                customer.setName(name);
            }
            if (gender != null && !gender.trim().isEmpty()) {
                gender = new String(gender.getBytes("ISO-8859-1"), "utf-8");
                customer.setGender(gender);
            }
            if (phone != null && !phone.trim().isEmpty()) {
                phone = new String(phone.getBytes("ISO-8859-1"), "utf-8");
                customer.setPhone(phone);
            }
            if (email != null && !email.trim().isEmpty()) {
                email = new String(email.getBytes("ISO-8859-1"), "utf-8");
                customer.setEmail(email);
            }
            return customer;
        }
     
        private String getUrl(HttpServletRequest request) {
            String contextPath = request.getContextPath();
            String servletPath = request.getServletPath();
            String queryString = request.getQueryString();
     
            if (queryString.contains("&pc=")) {
                int index = queryString.lastIndexOf("&pc=");
                queryString = queryString.substring(0, index);
            }
     
            return contextPath + servletPath + "?" + queryString;
        }
    }
     

CustomerService

    package service;
     
    import dao.CustomerDao;
    import domain.Customer;
    import domain.PageBean;
     
     
    public class CustomerService
    {
        CustomerDao customerDao=new CustomerDao();
     
        public void add(Customer customer)
        {
            customerDao.add(customer);
        }
     
    //    public List<Customer> findAll()
    //    {
    //        return customerDao.findAll();
    //    }
        public PageBean<Customer> findAll(int pc,int pr)
        {
            return customerDao.findAll(pc,pr);
        }
     
        public Customer find(String id)
        {
            return customerDao.find(id);
        }
     
        public void edit(Customer customer)
        {
            customerDao.edit(customer);
        }
     
        public void delete(String id)
        {
            customerDao.delete(id);
        }
     
        public PageBean<Customer> query(Customer customer,int pc,int pr)
        {
            return customerDao.query(customer,pc,pr);
     
     
        }
     
    }

web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
        <servlet>
            <servlet-name>CustomerServlet</servlet-name>
            <servlet-class>servlet.CustomerServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>CustomerServlet</servlet-name>
            <url-pattern>/CustomerServlet</url-pattern>
        </servlet-mapping>
     
    </web-app>

index.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <jsp:forward page="/frame.jsp"/>

frame.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <html>
    <head>
        <title>主页</title>
    </head>
    <frameset rows="20%,*">
        <frame src="<c:url value='/top.jsp'/>" name="top"/>
        <frame src="<c:url value='/welcome.jsp'/>" name="main"/>
    </frameset>
    </html>


edit.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri ="http://java.sun.com/jsp/jstl/core"%>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h3 align="center">编辑客户</h3>
    <form action="<c:url value='/CustomerServlet'/>" method="post" >
        <input type="hidden" name="method" value="edit"/>
        <input type="hidden" name="id" value="${customer.id}"/>
        <table border="0" align="center" width="40%" style="margin-left: 100px">
            <tr>
                <td width="100px">客户名称</td>
                <td width="40%">
                    <input type="text" name="name" value="${customer.name}"/>
                </td>
                <td align="left">
                    <label id="nameError" class="error"> </label>
                </td>
            </tr>
            <tr>
                <td>客户性别</td>
                <td>
                    <input type="radio" name="gender" value="male" id="male" <c:if test="${customer.gender eq 'male'}"/>checked="checked"/>
                    <label for="male">男</label>
                    <input type="radio" name="gender" value="female" id="female" <c:if test="${customer.gender eq 'female'}"/> checked="checked"/>
                    <label for="female">女</label>
                </td>
                <td>
                    <label id="genderError"class="error"> </label>
                </td>
            </tr>
            <tr>
                <td>手机</td>
                <td>
                    <input type="text" name="phone" id="phone" value="${customer.phone}"/>
                </td>
                <td>
                    <label id="phoneError"class="error"> </label>
                </td>
            </tr>
            <tr>
                <td>邮箱</td>
                <td>
                    <input type="text" name="email" id="email" value="${customer.email}"/>
                </td>
                <td>
                    <label id="emailError"class="error"> </label>
                </td>
            </tr>
            <tr>
                <td>描述</td>
                <td>
                    <textarea rows="5" cols="30" name="description">${customer.description}</textarea>
                </td>
                <td>
                    <label id="discriptionError"class="error"> </label>
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <input type="submit" name="submit" value="编辑客户"/>
                    <input type="reset" name="reset"/>
                </td>
            </tr>
        </table>
    </form>
     
     
    </body>
    </html>

add.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
     
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h3 align="center">添加客户</h3>
    <form action="<c:url value='/CustomerServlet'/>" method="post">
        <input type="hidden" name="method" value="add">
        <table border="0" align="center" width="40%" style="margin-left: 100px">
            <tr>
                <td width="100px">客户名称</td>
                <td width="40%">
                    <input type="text" name="name"/>
                </td>
                <td align="left">
                    <label id="nameError" class="error"> </label>
                </td>
            </tr>
            <tr>
                <td>客户性别</td>
                <td>
                    <input type="radio" name="gender" value="male" id="male"/>
                    <label for="male">男</label>
                    <input type="radio" name="gender" value="female" id="female"/>
                    <label for="female">女</label>
                </td>
                <td>
                    <label id="genderError" class="error"> </label>
                </td>
            </tr>
            <tr>
                <td>手机</td>
                <td>
                    <input type="text" name="phone" id="phone"/>
                </td>
                <td>
                    <label id="phoneError" class="error"> </label>
                </td>
            </tr>
            <tr>
                <td>邮箱</td>
                <td>
                    <input type="text" name="email" id="email"/>
                </td>
                <td>
                    <label id="emailError" class="error"> </label>
                </td>
            </tr>
            <tr>
                <td>描述</td>
                <td>
                    <textarea rows="5" cols="30" name="description"></textarea>
                </td>
                <td>
                    <label id="descriptionError" class="error"> </label>
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <input type="submit" name="submit"/>
                    <input type="reset" name="reset"/>
                </td>
            </tr>
        </table>
    </form>
     
    </body>
    </html>

list.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>客户列表</title>
    </head>
    <body>
        <h3 align="center" >客户列表</h3>
        <table border="1" width="70%" align="center">
            <tr>
                <th>客户姓名</th>
                <th>性别</th>
                <th>手机</th>
                <th>邮箱</th>
                <th>描述</th>
                <th>操作</th>
            </tr>
            <c:forEach items="${pb.beanList}" var="cstm">
            <tr>
                <td>${cstm.name}</td>
                <td>${cstm.gender}</td>
                <td>${cstm.phone}</td>
                <td>${cstm.email}</td>
                <td>${cstm.description}</td>
                <td>
                    <a href="<c:url value='/CustomerServlet?method=preEdit&id=${cstm.id}'/> ">编辑</a>
                    <a href="<c:url value='/CustomerServlet?method=delete&id=${cstm.id}'/> ">删除</a>
                </td>
            </tr>
            </c:forEach>
        </table>
    <br/>
    <center>
        第${pb.pc}页/共${pb.tp}页
        <a href="${pb.url}&pc=1">首页</a>
        <c:if test="${pb.pc>1}">
            <a href="${pb.url}&pc=${pb.pc-1}">上一页</a>
        </c:if>
     
        <c:choose>
            <c:when test="${pb.tp<=10}">
                <c:set var="begin" value="1"/>
                <c:set var="end" value="${pb.tp}"/>
            </c:when>
            <c:otherwise>
                <c:set var="begin" value="${pb.pc-5}"/>
                <c:set var="end" value="${pb.pc+4}"/>
                <%--头溢出--%>
                <c:if test="${begin<1}">
                    <c:set var="begin" value="1"/>
                    <c:set var="end" value="10"/>
                </c:if>
                <%--尾溢出--%>
                <c:if test="${end>pb.tp}">
                    <c:set var="end" value="${pb.tp}"/>
                    <c:set var="begin" value="${pb.tp-9}"/>
                </c:if>
            </c:otherwise>
        </c:choose>
     
        <%--循环遍历页码列表--%>
        <c:forEach var="i" begin="${begin}" end="${end}">
            <c:choose>
                <c:when test="${i eq pb.pc}">
                    [${i}]
                </c:when>
                <c:otherwise>
                    <a href="${pb.url}&pc=${i}">[${i}]</a>
                </c:otherwise>
            </c:choose>
     
        </c:forEach>
     
     
        <c:if test="${pb.pc<pb.tp}">
        <a href="${pb.url}&pc=${pb.pc+1}">下一页</a>
        </c:if>
        <a href="${pb.url}&pc=${pb.tp}">尾页</a>
     
    </center>
     
    </body>
    </html>

msg.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h1 style="color:green;" align="center">${msg}</h1>
     
    </body>
    </html>

query.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <html>
    <head>
        <title></title>
    </head>
    <body>
        <h3 align="center">高级搜索</h3>
        <form action="<c:url value="/CustomerServlet"/>" method="get">
            <input type="hidden" name="method" value="query">
            <table border="0" align="center" width="40%" style="margin-left: 100px">
                <tr>
                    <td width="100px">客户名称</td>
                    <td width="40%">
                        <input type="text" name="name">
                    </td>
                </tr>
                <tr>
                    <td>客户性别</td>
                    <td>
                        <select name="gender">
                            <option value="">==请选择性别==</option>
                            <option value="male">male</option>
                            <option value="female">female</option>
                        </select>
                    </td>
                </tr>
                <tr>
                <td>手机</td>
                <td>
                    <input type="text" name="phone"/>
                </td>
                </tr>
                <tr>
                    <td>邮箱</td>
                    <td>
                        <input type="text" name="email"/>
                    </td>
                </tr>
                <tr>
                    <td> </td>
                    <td>
     
                        <input type="submit" value="搜索"/>
                        <input type="reset" value="重置"/>
                    </td>
                </tr>
     
            </table>
        </form>
     
    </body>
    </html>

top.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <!-- 他的作用是为本页面所有的表单和超链接指定显示内容的框架-->
        <base target="main">
        <title>My JSP 'top.jsp' starting page</title>
    </head>
    <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>
    </html>

数据库建表语句:

    CREATE TABLE `t_customer` (
      `id` varchar(50) NOT NULL DEFAULT '',
      `name` varchar(50) DEFAULT NULL,
      `gender` varchar(10) DEFAULT NULL,
      `phone` varchar(30) DEFAULT NULL,
      `email` varchar(50) DEFAULT NULL,
      `description` text,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
   

原文地址:https://www.cnblogs.com/xiaohaigege666/p/11443781.html