首页 > 代码库 > 简单MVC实现增删改查

简单MVC实现增删改查

反射工具类RelfectionUtils

  1 package Utils;
  2 
  3 import java.lang.reflect.Field;
  4 import java.lang.reflect.InvocationTargetException;
  5 import java.lang.reflect.Method;
  6 import java.lang.reflect.Modifier;
  7 import java.lang.reflect.ParameterizedType;
  8 import java.lang.reflect.Type;
  9 
 10 /**
 11  * 反射的 Utils 函数集合
 12  * 提供访问私有变量, 获取泛型类型 Class, 提取集合中元素属性等 Utils 函数
 13  * @author Administrator
 14  *
 15  */
 16 public class ReflectionUtils {
 17 
 18     
 19     /**
 20      * 通过反射, 获得定义 Class 时声明的父类的泛型参数的类型
 21      * 如: public EmployeeDao extends BaseDao<Employee, String>
 22      * @param clazz
 23      * @param index
 24      * @return
 25      */
 26     @SuppressWarnings("unchecked")
 27     public static Class getSuperClassGenricType(Class clazz, int index){
 28         Type genType = clazz.getGenericSuperclass();
 29         
 30         if(!(genType instanceof ParameterizedType)){
 31             return Object.class;
 32         }
 33         
 34         Type [] params = ((ParameterizedType)genType).getActualTypeArguments();
 35         
 36         if(index >= params.length || index < 0){
 37             return Object.class;
 38         }
 39         
 40         if(!(params[index] instanceof Class)){
 41             return Object.class;
 42         }
 43         
 44         return (Class) params[index];
 45     }
 46     
 47     /**
 48      * 通过反射, 获得 Class 定义中声明的父类的泛型参数类型
 49      * 如: public EmployeeDao extends BaseDao<Employee, String>
 50      * @param <T>
 51      * @param clazz
 52      * @return
 53      */
 54     @SuppressWarnings("unchecked")
 55     public static<T> Class<T> getSuperGenericType(Class clazz){
 56         return getSuperClassGenricType(clazz, 0);
 57     }
 58     
 59     /**
 60      * 循环向上转型, 获取对象的 DeclaredMethod
 61      * @param object
 62      * @param methodName
 63      * @param parameterTypes
 64      * @return
 65      */
 66     public static Method getDeclaredMethod(Object object, String methodName, Class<?>[] parameterTypes){
 67         
 68         for(Class<?> superClass = object.getClass(); superClass != Object.class; superClass = superClass.getSuperclass()){
 69             try {
 70                 //superClass.getMethod(methodName, parameterTypes);
 71                 return superClass.getDeclaredMethod(methodName, parameterTypes);
 72             } catch (NoSuchMethodException e) {
 73                 //Method 不在当前类定义, 继续向上转型
 74             }
 75             //..
 76         }
 77         
 78         return null;
 79     }
 80     
 81     /**
 82      * 使 filed 变为可访问
 83      * @param field
 84      */
 85     public static void makeAccessible(Field field){
 86         if(!Modifier.isPublic(field.getModifiers())){
 87             field.setAccessible(true);
 88         }
 89     }
 90     
 91     /**
 92      * 循环向上转型, 获取对象的 DeclaredField
 93      * @param object
 94      * @param filedName
 95      * @return
 96      */
 97     public static Field getDeclaredField(Object object, String filedName){
 98         
 99         for(Class<?> superClass = object.getClass(); superClass != Object.class; superClass = superClass.getSuperclass()){
100             try {
101                 return superClass.getDeclaredField(filedName);
102             } catch (NoSuchFieldException e) {
103                 //Field 不在当前类定义, 继续向上转型
104             }
105         }
106         return null;
107     }
108     
109     /**
110      * 直接调用对象方法, 而忽略修饰符(private, protected)
111      * @param object
112      * @param methodName
113      * @param parameterTypes
114      * @param parameters
115      * @return
116      * @throws InvocationTargetException 
117      * @throws IllegalArgumentException 
118      */
119     public static Object invokeMethod(Object object, String methodName, Class<?> [] parameterTypes,
120             Object [] parameters) throws InvocationTargetException{
121         
122         Method method = getDeclaredMethod(object, methodName, parameterTypes);
123         
124         if(method == null){
125             throw new IllegalArgumentException("Could not find method [" + methodName + "] on target [" + object + "]");
126         }
127         
128         method.setAccessible(true);
129         
130         try {
131             return method.invoke(object, parameters);
132         } catch(IllegalAccessException e) {
133             System.out.println("不可能抛出的异常");
134         } 
135         
136         return null;
137     }
138     
139     /**
140      * 直接设置对象属性值, 忽略 private/protected 修饰符, 也不经过 setter
141      * @param object
142      * @param fieldName
143      * @param value
144      */
145     public static void setFieldValue(Object object, String fieldName, Object value){
146         Field field = getDeclaredField(object, fieldName);
147         
148         if (field == null)
149             throw new IllegalArgumentException("Could not find field [" + fieldName + "] on target [" + object + "]");
150         
151         makeAccessible(field);
152         
153         try {
154             field.set(object, value);
155         } catch (IllegalAccessException e) {
156             System.out.println("不可能抛出的异常");
157         }
158     }
159     
160     /**
161      * 直接读取对象的属性值, 忽略 private/protected 修饰符, 也不经过 getter
162      * @param object
163      * @param fieldName
164      * @return
165      */
166     public static Object getFieldValue(Object object, String fieldName){
167         Field field = getDeclaredField(object, fieldName);
168         
169         if (field == null)
170             throw new IllegalArgumentException("Could not find field [" + fieldName + "] on target [" + object + "]");
171         
172         makeAccessible(field);
173         
174         Object result = null;
175         
176         try {
177             result = field.get(object);
178         } catch (IllegalAccessException e) {
179             System.out.println("不可能抛出的异常");
180         }
181         
182         return result;
183     }
184 }

jdbcutils

 1 package Utils;
 2 
 3 import java.sql.Connection;
 4 import java.sql.SQLException;
 5 
 6 import javax.sql.DataSource;
 7 
 8 import com.mchange.v2.c3p0.ComboPooledDataSource;
 9 
10 public class JdbcUtil {
11     
12     public static void reaseConnection(Connection connection) {
13         try {
14             if(connection!=null){
15                 connection.close();
16             }
17         } catch (SQLException e) {
18             // TODO Auto-generated catch block
19             e.printStackTrace();
20         }
21     }
22     private static DataSource dataSource = null;
23     static{
24         dataSource = new ComboPooledDataSource("mvc");
25     }
26     
27     public static DataSource getDataSource(){
28         return dataSource;
29     }
30     
31     public static Connection getConnection(){
32         try {
33             return dataSource.getConnection();
34         } catch (SQLException e) {
35             // TODO Auto-generated catch block
36             //e.printStackTrace();
37             System.out.println("连接失败");
38         }
39         return null;
40         
41     }
42 }

 

DAO操作类 依靠c3p0,dbutil

 1 package com.mvc.dao;
 2 
 3 import java.lang.reflect.ParameterizedType;
 4 import java.lang.reflect.Type;
 5 import java.sql.Connection;
 6 import java.sql.PreparedStatement;
 7 import java.sql.SQLException;
 8 import java.util.ArrayList;
 9 import java.util.List;
10 
11 import org.apache.commons.dbutils.QueryRunner;
12 import org.apache.commons.dbutils.handlers.BeanHandler;
13 import org.apache.commons.dbutils.handlers.BeanListHandler;
14 import org.apache.commons.dbutils.handlers.ScalarHandler;
15 import org.apache.el.util.ReflectionUtil;
16 
17 import com.sun.org.apache.bcel.internal.generic.NEW;
18 
19 import Utils.JdbcUtil;
20 import Utils.ReflectionUtils;
21 
22 public class Dao<T> {
23     private Class<T> clazz;
24     private QueryRunner queryRunner= new QueryRunner(JdbcUtil.getDataSource());
25     public Dao() {
26         clazz = ReflectionUtils.getSuperGenericType(this.getClass());
27     }
28     public <E> E getForValue(String sql,Object ...arg){
29         try {
30             return (E) queryRunner.query(sql,new ScalarHandler(),arg);
31         } catch (SQLException e) {
32             // TODO Auto-generated catch block
33             e.printStackTrace();
34             System.out.println("getForValue error");
35         }
36         return null;
37         
38     }
39     public List<T> getForList(String sql,Object ...args){
40         try {
41             return queryRunner.query(sql, new BeanListHandler<>(clazz),args);
42         } catch (SQLException e) {
43             System.out.println("getForList error");
44         }
45         return null;
46 
47         
48     }
49     public T get(String sql,Object ...args){
50         try {
51             return queryRunner.query(sql,new BeanHandler<>(clazz),args);
52         } catch (SQLException e) {
53             // TODO Auto-generated catch block
54             //e.printStackTrace();
55             System.out.println("get error");
56         }
57         return null;
58     }
59     
60     public void updata(String sql,Object ...args){
61         try {
62             queryRunner.update(sql,args);
63         } catch (SQLException e) {
64             // TODO Auto-generated catch block
65             //e.printStackTrace();
66             System.out.println("updata error");
67         }
68     }
69 }

Customer类

package com.mvc.domain;

public class Customer {
    private String id;
    private String name;
    private String address;
    private String phone;
    private int count;
        

    
    
    public Customer() {
        super();
    }
    public Customer(String id, String name, String address, String phone) {
        super();
        this.id = id;
        this.name = name;
        this.address = address;
        this.phone = phone;
        this.count = 0;
    }
    
    
    public int getCount() {
        return count;
    }
    public void setCount(int count) {
        this.count = count;
    }
    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 getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    @Override
    public String toString() {
        return "Customer [id=" + id + ", name=" + name + ", address=" + address + ", phone=" + phone + "]";
    }
    
    
}

CustomerDao接口

 1 package com.mvc.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.mvc.domain.CriteriaCustomer;
 6 import com.mvc.domain.Customer;
 7 
 8 public interface CustomerDao {
 9     public List<Customer> getAll();
10     public void save(Customer customer);
11     public void upCount(Customer customer);
12     public void upAll(Customer customer);
13     public Customer getForIdName(String id,String name);
14     public Customer getForId(String id);
15     public void delete(String id);
16     public long getCountWithName(String name);
17     public long getCountWithId(String id);
18     public List<Customer> getCriteriaCustomers(CriteriaCustomer cc);
19 }

操作类

 1 package com.mvc.jdbc;
 2 
 3 import java.sql.SQLException;
 4 import java.util.List;
 5 
 6 import com.mvc.dao.CustomerDao;
 7 import com.mvc.dao.Dao;
 8 import com.mvc.domain.CriteriaCustomer;
 9 import com.mvc.domain.Customer;
10 
11 public class CustomerDaoJdbc extends Dao<Customer> implements CustomerDao{
12 
13     @Override
14     public List<Customer> getAll(){
15         // TODO Auto-generated method stub
16         String sql = "SELECT * FROM customer";
17         return getForList(sql);
18     }
19 
20     @Override
21     public void save(Customer customer) {
22         // TODO Auto-generated method stub
23         String sql = "insert into customer(id,name,address,phone,count) value(?,?,?,?,?)";
24         updata(sql,customer.getId(),customer.getName(),customer.getAddress(),customer.getPhone(),customer.getCount());
25         
26     }
27     
28     @Override
29     public void upAll(Customer customer) {
30         // TODO Auto-generated method stub
31         String sql = "UPDATE customer SET NAME=?,ADDRESS=?,PHONE=?  WHERE ID=?";
32         updata(sql,customer.getName(),customer.getAddress(),customer.getPhone(),customer.getId());
33         
34     }
35     
36     @Override
37     public void upCount(Customer customer) {
38         // TODO Auto-generated method stub
39         String sql = "UPDATE customer SET COUNT=? WHERE ID=?";
40         updata(sql,customer.getCount(),customer.getId());
41     }
42 
43     @Override
44     public Customer getForIdName(String id,String name) {
45         // TODO Auto-generated method stub
46         String sql = "SELECT id,name,address,phone,count FROM customer where id = ? and name = ?";
47         return get(sql,id,name);
48     }
49     @Override
50     public Customer getForId(String id) {
51         // TODO Auto-generated method stub
52         String sql = "SELECT id,name,address,phone,count FROM customer where id = ?";
53         return get(sql,id);
54     }
55     @Override
56     public void delete(String id) {
57         // TODO Auto-generated method stub
58         String sql = "delete from customer where ID = ? ";
59         updata(sql,id);
60         
61     }
62 
63     @Override
64     public long getCountWithName(String name) {
65         // TODO Auto-generated method stub
66         String sql = "select count(id) from customer where name = ?";
67         return (long)getForValue(sql, name);
68     }
69 
70     @Override
71     public List<Customer> getCriteriaCustomers(CriteriaCustomer cc) {
72         // TODO Auto-generated method stub
73         String sql = "SELECT * FROM customer WHERE NAME LIKE ? AND address LIKE ? AND phone LIKE ?";
74         System.out.println(cc.getName()+cc.getAddress()+cc.getPhone());
75         return getForList(sql,cc.getName(),cc.getAddress(),cc.getPhone());
76     }
77 
78     @Override
79     public long getCountWithId(String id) {
80         // TODO Auto-generated method stub
81                 String sql = "select count(id) from customer where id= ?";
82                 return (long)getForValue(sql, id);
83     }
84 
85 
86 
87 
88 
89     
90 
91 
92 
93 }

servlet

  1 package com.mvc.servlet;
  2 
  3 import java.io.IOException;
  4 import java.lang.reflect.Method;
  5 import java.util.ArrayList;
  6 import java.util.List;
  7 
  8 import javax.servlet.ServletException;
  9 import javax.servlet.annotation.WebServlet;
 10 import javax.servlet.http.HttpServlet;
 11 import javax.servlet.http.HttpServletRequest;
 12 import javax.servlet.http.HttpServletResponse;
 13 
 14 import com.mvc.dao.CustomerDao;
 15 import com.mvc.domain.CriteriaCustomer;
 16 import com.mvc.domain.Customer;
 17 import com.mvc.jdbc.CustomerDaoJdbc;
 18 import com.sun.corba.se.impl.protocol.giopmsgheaders.Message;
 19 
 20 import jdk.nashorn.internal.ir.RuntimeNode.Request;
 21 
 22 /**
 23  * Servlet implementation class SqlServlet
 24  */
 25 @WebServlet("/SqlServlet")
 26 public class SqlServlet extends HttpServlet {
 27     private static final long serialVersionUID = 1L;
 28 
 29     /**
 30      * @see HttpServlet#HttpServlet()
 31      */
 32     CustomerDao customerDao = null;
 33 
 34     public SqlServlet() {
 35         super();
 36         // TODO Auto-generated constructor stub
 37         customerDao = new CustomerDaoJdbc();
 38     }
 39 
 40     /**
 41      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
 42      *      response)
 43      */
 44     protected void doGet(HttpServletRequest request,
 45             HttpServletResponse response) throws ServletException, IOException {
 46         // TODO Auto-generated method stub
 47         doPost(request, response);
 48     }
 49 
 50     /**
 51      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
 52      *      response)
 53      */
 54     protected void doPost(HttpServletRequest request,
 55             HttpServletResponse response) throws ServletException, IOException {
 56         // TODO Auto-generated method stub
 57         request.setCharacterEncoding("utf-8");
 58         String servletPath = request.getServletPath();
 59         // System.out.println(servletPath);
 60         servletPath = servletPath.substring(1, servletPath.length() - 3);
 61         try {
 62             Method method = getClass().getDeclaredMethod(servletPath,
 63                     HttpServletRequest.class, HttpServletResponse.class);
 64             method.invoke(this, request, response);
 65         } catch (Exception e) {
 66             // TODO Auto-generated catch block
 67             e.printStackTrace();
 68         }
 69 
 70     }
 71 
 72     @SuppressWarnings("unused")
 73     private void edit(HttpServletRequest request, HttpServletResponse response)
 74             throws ServletException, IOException {
 75         System.out.println("edit");
 76         String id = request.getParameter("id");
 77         System.out.println(id);
 78         Customer customer = customerDao.getForId(id);
 79         System.out.println(customer);
 80         request.setAttribute("customer", customer);
 81         request.getRequestDispatcher("/updata.jsp").forward(request, response);
 82     }
 83 
 84     @SuppressWarnings("unused")
 85     private void updata(HttpServletRequest request, HttpServletResponse response)
 86             throws ServletException, IOException {
 87         System.out.println("updata");
 88         String id = request.getParameter("id");
 89         String name = request.getParameter("name");
 90         String address = request.getParameter("address");
 91         String phone = request.getParameter("phone");
 92         Customer customer = new Customer(id, name, address, phone);
 93         String massage;
 94         massage = "修改成功";
 95         customerDao.upAll(customer);
 96         request.setAttribute("massage", massage);
 97         request.setAttribute("customer", customer);
 98         request.getRequestDispatcher("/updata.jsp").forward(request, response);
 99 
100     }
101 
102     @SuppressWarnings("unused")
103     private void add(HttpServletRequest request, HttpServletResponse response)
104             throws ServletException, IOException {
105         System.out.println("add");
106         String id = request.getParameter("id");
107         String name = request.getParameter("name");
108         String address = request.getParameter("address");
109         String phone = request.getParameter("phone");
110         Customer customer = new Customer(id, name, address, phone);
111         System.out.println(customer);
112         long count = customerDao.getCountWithName(name);
113         long count1 = customerDao.getCountWithId(id);
114         System.out.println("count:" + count);
115         request.setAttribute("id", id);
116         request.setAttribute("name", name);
117         request.setAttribute("address", address);
118         request.setAttribute("phone", phone);
119         if (count1 > 0) {
120             request.setAttribute("massage", "学号已存在,报名失败");
121             request.getRequestDispatcher("/newcustomer.jsp").forward(request,
122                     response);
123         } else {
124             request.setAttribute("massage", "报名成功");
125             customerDao.save(customer);
126             request.getRequestDispatcher("/newcustomer.jsp").forward(request,
127                     response);
128         }
129     }
130 
131     @SuppressWarnings("unused")
132     private void delete(HttpServletRequest request, HttpServletResponse response)
133             throws IOException {
134         System.out.println("delete");
135         String id = request.getParameter("id");
136         System.out.println(id);
137         //customerDao.delete(id);
138 
139         //response.sendRedirect("query.do");
140     }
141 
142     @SuppressWarnings("unused")
143     private void query(HttpServletRequest request, HttpServletResponse response) {
144         String name = request.getParameter("name");
145         String address = request.getParameter("address");
146         String phone = request.getParameter("phone");
147         System.out.println(name + address + phone);
148         System.out.println("query");
149         CriteriaCustomer cc = new CriteriaCustomer(name, address, phone);
150         List<Customer> customers = customerDao.getCriteriaCustomers(cc);
151         request.setAttribute("customers", customers);
152         try {
153             request.getRequestDispatcher("/ypacm507.jsp").forward(request,
154                     response);
155         } catch (ServletException | IOException e) {
156             // TODO Auto-generated catch block
157             e.printStackTrace();
158         }
159     }
160 
161     @SuppressWarnings("unused")
162     private void come(HttpServletRequest request, HttpServletResponse response) {
163         String name = request.getParameter("name");
164         String id = request.getParameter("id");
165         Customer customer = customerDao.getForIdName(id, name);
166         System.out.println(customer);
167         if (customer != null) {
168             request.setAttribute("massage", "");
169             customer.setCount(customer.getCount() + 1);
170             customerDao.upCount(customer);
171                 //response.sendRedirect("NewFile_1.jsp");
172                 try {
173                     request.getRequestDispatcher("/NewFile_1.jsp").forward(request,
174                             response);
175                 } catch (ServletException | IOException e) {
176                     // TODO Auto-generated catch block
177                     e.printStackTrace();
178                 }
179         
180         } else {
181             try {
182                 String massage = "名字或学号错误";
183                 request.setAttribute("massage", massage);
184                 request.setAttribute("id", id);
185                 request.setAttribute("name", name);
186                 request.getRequestDispatcher("/come.jsp").forward(request,
187                         response);
188             } catch (ServletException | IOException e) {
189                 // TODO Auto-generated catch block
190                 e.printStackTrace();
191             }
192         }
193     }
194 }

以下jsp代码 css样式等为网上找的素材

1.增加用户的jsp

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 8 <!--[if IE]><meta http-equiv="x-ua-compatible" content="IE=9" /><![endif]-->
 9 <meta name="viewport" content="width=device-width, initial-scale=1">
10  <meta name="description" content="Your Description Here"> 
11  <meta name="keywords"
12     content="bootstrap themes, portfolio, responsive theme"> 
13 <meta name="author" content="ThemeForces.Com">
14 
15 <!-- Favicons
16     ================================================== -->
17   <!-- <link rel="shortcut-icon" href="http://www.mamicode.com/img/favicon.ico" type="image/x-icon"> -->
18  <!-- <link rel="apple-touch-icon" href="http://www.mamicode.com/img/apple-touch-icon.png">  -->
19    <link rel="apple-touch-icon" sizes="72x72" 
20     href="http://www.mamicode.com/img/apple-touch-icon-72x72.png">
21  <link rel="apple-touch-icon" sizes="114x114"
22     href="http://www.mamicode.com/img/apple-touch-icon-114x114.png">
23 
24 <!-- Bootstrap -->
25   <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/css/bootstrap.css"> 
26 <!-- <link rel="stylesheet" type="text/css"
27     href="http://www.mamicode.com/fonts/font-awesome/css/font-awesome.css"> -->
28 
29 <!-- Stylesheet
30     ================================================== -->
31   <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/css/style.css">
32    <!--  <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/css/responsive.css"> --> 
33 
34 <!-- <script type="text/javascript" src="http://www.mamicode.com/js/modernizr.custom.js"></script> -->
35 
36 
37 <title></title>
38 </head>
39 <body>
40     <h3 style="text-align: center;"><font color="red"><c:out value="http://www.mamicode.com/${massage}"></c:out></font></h3>
41     <div id="tf-contact">
42         <div class="container">
43             <div class="section-title">
46                 <hr>
47             </div>
48 
49             <div class="space"></div>
50 
51             <div class="row">
52                 <div class="col-md-6 col-md-offset-3">
53                     <form id="contact" action="add.do" method="post">
54                         <div class="form-group">
55                             <input class="form-control" id="exampleInputEmail1" type="text"
56                                 name="id" value="http://www.mamicode.com/${id}" placeholder="长学号" />
57                         </div>
58                         
59                         <div class="form-group">
60                             <input class="form-control" type="text" name="name"
61                                 value="http://www.mamicode.com/${name}" placeholder="姓名" />
62                         </div>
63 
64 
65                         <div class="form-group">
66                             <input class="form-control" type="text" name="address"
67                                 value="http://www.mamicode.com/${address}" placeholder="班级" />
68                         </div>
69 
70                         <td><div class="form-group">
71                                 <input class="form-control" type="text" name="phone"
72                                     value="http://www.mamicode.com/${phone}" placeholder="手机" />
73                             </div> 
74                             <input class="btn btn-primary my-btn dark" type="submit"
75                             value="http://www.mamicode.com/--报名--" />
76                     </form>
77                 </div>
78             </div>
79         </div>
80     </div>
81     <!--  <script type="text/javascript" src="http://www.mamicode.com/js/jquery.1.11.1.js"></script>-->
82     <!-- Include all compiled plugins (below), or include individual files as needed -->
83     <!--  <script type="text/javascript" src="http://www.mamicode.com/js/bootstrap.js"></script> -->
84 
85     <!-- Javascripts
86     ================================================== -->
87      <!--  <script type="text/javascript" src="http://www.mamicode.com/js/main.js"></script>-->
88 </body>
89 </html>

2.查询

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    
 4     
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 6 <html>
 7 <head>
 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 9 <title>Insert title here</title>
10 <script type="text/javascript" src="scripts/jquery-1.7.2.js"></script>
11 <script type="text/javascript">
21 </script> 22 </head> 23 <body> 24 25 <form action="query.do" method="post"> 26 <table> 27 <tr> 28 <td>CustomerName:</td> 29 <td><input type="text" name="name"/></td> 30 </tr> 31 <tr> 32 <td>Address:</td> 33 <td><input type="text" name="address"/></td> 34 </tr> 35 <tr> 36 <td>Phone:</td> 37 <td><input type="text" name="phone"/></td> 38 </tr> 39 <tr> 40 <td><input type="submit" value="Query"/></td> 41 <td><a href="newcustomer.jsp">Add New Customer</a></td> 42 </tr> 43 </table> 44 </form> 45 46 <br><br> 47 48 <c:if test="${!empty requestScope.customers }"> 49 50 <hr> 51 <br><br> 52 53 <table border="1" cellpadding="10" cellspacing="0"> 54 <tr> 55 <th>^ID</th> 56 <th>CustomerName</th> 57 <th>Address</th> 58 <th>Phone</th> 59 <th>UPDATE\DELETE</th> 60 </tr> 61 62 <c:forEach items="${requestScope.customers }" var="cust"> 63 64 <tr> 65 <td>${cust.id }</td> 66 <td>${cust.name }</td> 67 <td>${cust.address }</td> 68 <td>${cust.phone }</td> 69 <td> 70 <c:url value="/edit.do" var="editurl"> 71 <c:param name="id" value="${cust.id }"></c:param> 72 </c:url> 73 <a href="${editurl }">UPDATE</a> 74 <c:url value="/delete.do" var="deleteurl"> 75 <c:param name="id" value="${cust.id }"></c:param> 76 </c:url> 77 <a href="${deleteurl }" class="delete">DELETE</a> 78 </td> 79 </tr> 80 81 </c:forEach> 82 83 </table> 84 </c:if> 85 86 </body> 87 </html>

3.删除

<%@ page language="java" 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>Insert title here</title>
<script type="text/javascript" src="scripts/jquery-1.7.2.js"></script>

</head>
<body>
    
    <form action="query.do" method="post">
        <table>
            <tr>
                <td>CustomerName:</td>
                <td><input type="text" name="name"/></td>
            </tr>
            <tr>
                <td>Address:</td>
                <td><input type="text" name="address"/></td>
            </tr>
            <tr>
                <td>Phone:</td>
                <td><input type="text" name="phone"/></td>
            </tr>
            <tr>
                <td><input type="submit" value="Query"/></td>
                <td><a href="newcustomer.jsp">Add New Customer</a></td>
            </tr>
        </table>
    </form>
    
    <br><br>
    
    <c:if test="${!empty requestScope.customers }">

        <hr>    
        <br><br>
     
        <table border="1" cellpadding="10" cellspacing="0">
            <tr>
                <th>^ID</th>
                <th>CustomerName</th>
                <th>Address</th>
                <th>Phone</th>
                <th>UPDATE\DELETE</th>
            </tr>
            
            <c:forEach items="${requestScope.customers }" var="cust">
                    
                    <tr>
                        <td>${cust.id }</td>
                        <td>${cust.name }</td>
                        <td>${cust.address }</td>
                        <td>${cust.phone }</td>
                        <td>
                            <c:url value="/edit.do" var="editurl">
                                <c:param name="id" value="${cust.id }"></c:param>
                            </c:url>
                            <a href="${editurl }">UPDATE</a>
                            <c:url value="/delete.do" var="deleteurl">
                                <c:param name="id" value="${cust.id }"></c:param>
                            </c:url>
                            <a href="${deleteurl }" class="delete">DELETE</a>
                        </td>
                    </tr>
            
            </c:forEach>
            
        </table>
    </c:if>
    
</body>
</html>

4.修改

<%@ page language="java" 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">
<!--[if IE]><meta http-equiv="x-ua-compatible" content="IE=9" /><![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Your Description Here">
<meta name="keywords"
    content="bootstrap themes, portfolio, responsive theme">
<meta name="author" content="ThemeForces.Com">

<!-- Favicons
    ================================================== -->
<link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" href="img/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="72x72"
    href="img/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="114x114"
    href="img/apple-touch-icon-114x114.png">

<!-- Bootstrap -->
<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
<link rel="stylesheet" type="text/css"
    href="fonts/font-awesome/css/font-awesome.css">

<!-- Stylesheet
    ================================================== -->
<link rel="stylesheet" type="text/css" href="css/style.css">
<link rel="stylesheet" type="text/css" href="css/responsive.css">

<script type="text/javascript" src="js/modernizr.custom.js"></script>


<title></title>
</head>
<body>

    <c:if test="${requestScope.massage != null }">
        <br>
        <h3 style="text-align: center;"><font color="red"><c:out value="${massage}"></c:out></font></h3>
        <br>
        <br>
    </c:if>

    <c:set var="id" value="${customer != null ? customer.id : param.id }"></c:set>

    <c:set var="name"
        value="${customer != null ? customer.name : param.name }"></c:set>
    <c:set var="address"
        value="${customer != null ? customer.address : param.address }"></c:set>
    <c:set var="phone"
        value="${customer != null ? customer.phone : param.phone }"></c:set>
    <div id="tf-contact">
        <div class="container">
            <div class="section-title">
             
                <hr>
            </div>

            <div class="space"></div>

            <div class="row">
                <div class="col-md-6 col-md-offset-3">
                    <form id="contact" action="updata.do" method="post">
                    <input type="hidden" name="id" value="${id }"></input>
                        <div class="form-group">
                            <h4>姓名:</h4>
                            <input class="form-control" type="text" name="name"
                                value="${name}" placeholder="姓名" />
                        </div>


                        <div class="form-group">
                            <h4>班级:</h4>
                            <input class="form-control" type="text" name="address"
                                value="${address}" placeholder="班级" />
                        </div>

                        <div class="form-group">
                                <h4>手机:</h4>
                                <input class="form-control" type="text" name="phone"
                                    value="${phone}" placeholder="手机" />
                            </div> <input class="btn btn-primary my-btn dark" type="submit"
                            value="修改" />
                    </form>
                </div>
            </div>
        </div>
    </div>
    <script type="text/javascript" src="js/jquery.1.11.1.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script type="text/javascript" src="js/bootstrap.js"></script>

    <!-- Javascripts
    ================================================== -->
    <script type="text/javascript" src="js/main.js"></script>
</body>
</html>

运行效果 增加信息

 技术分享

数据库内数据

技术分享

 

简单MVC实现增删改查