MVC模式的学生信息增删改查

准备:建一个名为 userdb的数据库。建一个student表,有stuid,stuname,gender三个字段。其中stuid为主键。j加入相应的驱动包,相应的JSTL标签

先看目录结构


代码:

DDUtil.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package util;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
 
/**
 * @author sawyer 2014下午1:20:16
 *
 */
 
public class DBUtil {
    private Connection conn = null;
    private PreparedStatement stmt = null;
    private ResultSet rs = null;
    private static String driver = "com.mysql.jdbc.Driver";
    private String url = "jdbc:mysql://localhost:3306/userdb";
    private String user = "root";
    private String password = "orcl";
 
    /**
     * Get the driver
     */
    static {
 
    }
 
    /**
     * Connect the database
     */
    public Connection getCon() {
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            conn = (Connection) DriverManager
                    .getConnection(url, user, password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
 
    /**
     * @param sql
     * @param obj
     *            Update
     *//*
    public int update(String sql, Object... obj) {
        int count = 0;
        conn = getCon();
        try {
            stmt = conn.prepareStatement(sql);
            if (obj != null) {
                for (int i = 0; i < obj.length; i++) {
                    stmt.setObject(i + 1, obj[i]);
                }
            }
            count = stmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            close();
        }
        return count;
    }
 
    *//**
     * @param sql
     * @param obj
     *            Query
     *//*
    public ResultSet Query(String sql, Object... obj) {
        conn = getCon();
        try {
            stmt = conn.prepareStatement(sql);
            while (obj != null) {
                for (int i = 0; i < obj.length; i++) {
                    stmt.setObject(i + 1, obj[i]);
                }
            }
            rs = stmt.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            close();
        }
        return rs;
    }*/
 
    /**
     * CLose the resource
     */
    public void close() {
        try {
            if (rs != null) {
                rs.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (stmt != null) {
                    stmt.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                if (conn != null) {
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}

  

 

Student.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package entity;
 
public class Student {
    private int stuid;
    private String stuname;
    private String gender;
 
    public int getStuid() {
        return stuid;
    }
 
    public void setStuid(int stuid) {
        this.stuid = stuid;
    }
 
    public String getStuname() {
        return stuname;
    }
 
    public void setStuname(String stuname) {
        this.stuname = stuname;
    }
 
    public String getGender() {
        return gender;
    }
 
    public void setGender(String gender) {
        this.gender = gender;
    }
 
    public Student()
    {
         
    }
    public Student(int stuid, String stuname, String gender) {
        super();
        stuid = this.stuid;
        stuname = this.stuname;
        gender = this.gender;
    }
 
}

 

  

Model.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package model;
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
 
import entity.Student;
 
import util.DBUtil;
 
public class Model {
    private Statement sta;
    private ResultSet rs;
    PreparedStatement ps;
    DBUtil u=new DBUtil();
     
     
    public  int Insert(int stuid,String stuname,String gender) throws SQLException{
        Connection conn=u.getCon();
        String sql="insert student values(?,?,?)";
        ps=conn.prepareStatement(sql);
        ps.setInt(1,stuid);
        ps.setString(2,stuname);
        ps.setString(3,gender);
        int a=ps.executeUpdate();
        return a;
    }
     
    public  int delete(int stuid) throws SQLException{
        Connection conn=u.getCon();
        String sql="delete from student where stuid=?";
        ps=conn.prepareStatement(sql);
        ps.setInt(1,stuid);
        int a=ps.executeUpdate();
        return a;
    }
     
    public  int update(int stuid,String stuname,String gender) throws SQLException{
        Connection conn=u.getCon();
        String sql="update student set stuname=?,gender=? where stuid=?";
        ps=conn.prepareStatement(sql);
        ps.setInt(3,stuid);
        ps.setString(1,stuname);
        ps.setString(2,gender);
        int a=ps.executeUpdate();
        return a;
    }
    public List<Student> queryAll() throws SQLException{
        List<Student> students=new ArrayList<Student>();
        Connection conn=u.getCon();
        String  sql="select * from student";
        sta=conn.createStatement();
        rs=sta.executeQuery(sql);
        while(rs.next()){
            Student student=new Student();
            student.setStuid(rs.getInt("stuid"));
            student.setStuname(rs.getString("stuname"));
            student.setGender(rs.getString("gender"));
            students.add(student);
        }
        return students;
    }
     
    public Student queryById(int stuid) throws SQLException{
        Student student=new Student();
        Connection conn=u.getCon();
        String sql="select * from student where stuid=?";
        ps=conn.prepareStatement(sql);
        ps.setInt(1,stuid);
        rs=ps.executeQuery();
        if(rs.next()){
            student.setStuid(rs.getInt("stuid"));
            student.setStuname(rs.getString("stuname"));
            student.setGender(rs.getString("gender"));
        }
        return student;
         
    }
     
}

 

 

web.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>    
  <filter>
  <filter-name>EncodingFilter</filter-name>
  <filter-class>servlet.EncodingFilter</filter-class>
  <init-param>
  <param-name>encoding</param-name>
  <param-value>UTF-8</param-value>
  </init-param>
  </filter>
  <filter-mapping>
  <filter-name>EncodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <servlet>
  <servlet-name>QueryAll</servlet-name>
  <servlet-class>servlet.QueryAll</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>QueryAll</servlet-name>
  <url-pattern>/QueryAll.do</url-pattern>
  </servlet-mapping>
  
   <servlet>
  <servlet-name>Insert</servlet-name>
  <servlet-class>servlet.Insert</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>Insert</servlet-name>
  <url-pattern>/Insert.do</url-pattern>
  </servlet-mapping>
  
  <servlet>
  <servlet-name>SelectUpdate</servlet-name>
  <servlet-class>servlet.SelectUpdate</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>SelectUpdate</servlet-name>
  <url-pattern>/SelectUpdate.do</url-pattern>
  </servlet-mapping>
  
   <servlet>
  <servlet-name>Update</servlet-name>
  <servlet-class>servlet.Update</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>Update</servlet-name>
  <url-pattern>/Update.do</url-pattern>
  </servlet-mapping>
  
   <servlet>
  <servlet-name>Delete</servlet-name>
  <servlet-class>servlet.Delete</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>Delete</servlet-name>
  <url-pattern>/Delete.do</url-pattern>
  </servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
复制代码

 

 

QueryAll.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package servlet;
 
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
 
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import entity.Student;
 
import model.Model;
 
 
@SuppressWarnings("serial")
public class QueryAll extends HttpServlet{
    public QueryAll(){
        super();
    }
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{
        Model model=new Model();
        try{
        List<Student> list=model.queryAll();
         
        request.getSession().setAttribute("list", list);
        }catch(Exception e){
            e.printStackTrace();
        }
        response.sendRedirect("index.jsp");
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
        this.doGet(request, response);
    }
}

  

Insert.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package servlet;
 
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
 
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import model.Model;
 
@SuppressWarnings("serial")
public class Insert extends HttpServlet{
    public Insert(){
        super();
    }
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{
        Model model = new Model();
        int stuid = Integer.parseInt(request.getParameter("stuid"));
        String stuname = request.getParameter("stuname");
        String gender = request.getParameter("gender");
        try {
            model.Insert(stuid, stuname, gender);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        response.sendRedirect("QueryAll.do");
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
        this.doGet(request, response);
    }
}

  

 

Delete.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package servlet;
 
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
 
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import model.Model;
 
@SuppressWarnings("serial")
public class Delete extends HttpServlet{
    public Delete(){
        super();
    }
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{
        Model model=new Model();
        int stuid=Integer.parseInt(request.getParameter("stuid"));
        /*String stuname=request.getParameter("stuname");
        String gender=request.getParameter("gender");*/
        try {
            model.delete(stuid);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        response.sendRedirect("QueryAll.do");
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
        this.doGet(request, response);
    }
}

  


SelectUpdate.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package servlet;
 
import java.io.IOException;
import java.sql.SQLException;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import entity.Student;
 
import model.Model;
 
@SuppressWarnings("serial")
public class SelectUpdate extends HttpServlet{
    public SelectUpdate(){
        super();
    }
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{
        int stuid=Integer.parseInt(request.getParameter("stuid"));
        Model model=new Model();
        try {
            Student student=model.queryById(stuid);
            request.setAttribute("student", student);
            int id=Integer.parseInt(request.getParameter("id"));
            if(id==1){
            request.getRequestDispatcher("update.jsp").forward(request, response);
            }else if(id==2){
                request.getRequestDispatcher("delete.jsp").forward(request, response); 
            }
            } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ServletException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
        this.doGet(request, response);
    }
}

  


Update.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package servlet;
 
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
 
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import model.Model;
 
@SuppressWarnings("serial")
public class Update extends HttpServlet{
    public Update(){
        super();
    }
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{
        Model model=new Model();
        int stuid=Integer.parseInt(request.getParameter("stuid"));
        String stuname=request.getParameter("stuname");
        String gender=request.getParameter("gender");
        try {
            model.update(stuid, stuname, gender);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        response.sendRedirect("QueryAll.do");
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
        this.doGet(request, response);
    }
}

  

 

EncodingFilter.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package servlet;
 
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
 
public class EncodingFilter implements Filter {
     
    private String encoding = null;
    public void init(FilterConfig config) throws ServletException {
        this.encoding = config.getInitParameter("encoding");
    }
     
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        request.setCharacterEncoding(this.encoding);
        response.setCharacterEncoding(this.encoding);
        chain.doFilter(request, response);
    }
     
    public void destroy() {
        this.encoding = null;
    }
 
}

  


index.jsp 

复制代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page language="java" import="model.*,entity.*,servlet.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"  %>
<%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
  
  <body>
  <h1>学生信息列表</h1>
  <a href="insert.jsp">新增</a><br><hr>
  <pg:pager maxPageItems="10" url="index.jsp">
    <table border="1">
    <tr><td>学号</td><td>姓名</td><td>性别</td><td>修改</td><td>删除</td></tr>
    <c:forEach items="${sessionScope.list}" var="student">
    <pg:item>
    <tr>
    <td>${student.stuid}</td>
    <td>${student.stuname}</td>
    <td>${student.gender}</td>
    <td><a href="SelectUpdate.do?id=1&stuid=${student.stuid}">修改</a></td>
    <td><a href="SelectUpdate.do?id=2&stuid=${student.stuid}">删除</a></td>
    </tr>
    </pg:item>
    </c:forEach>
    <tr>
    <td> 
    <pg:index>
    <pg:first><a href="${pageUrl}">第一页</a></pg:first>
    <pg:prev><a href="${pageUrl}">上一页</a></pg:prev>
    <pg:pages><a href="${pageUrl}">${pageNumber}</a></pg:pages>
    <pg:next><a href="${pageUrl}">下一页</a></pg:next>
    <pg:last><a href="${pageUrl}">最后一页</a></pg:last>
    </pg:index>
    </td>
    </tr>
   </table>
   </pg:pager>
  </body>
</html>
复制代码

 

delete.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
     
    <title>My JSP 'delete.jsp' starting page</title>
     
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">   
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
 
  </head>
   
  <body>
    <h1>删除数据</h1>
    <form action="Delete.do" method="post">
        <table>
            <tr>
                <td>请输入数据:</td>
                <td>学号:<input type="text" name="stuid" id="stuid" value="${student.stuid}">
                </td>
                <td>姓名:<input type="text" name="stuname" id="stuname" value="${student.stuname}">
                </td>
                <td>性别:<input type="text" name="gender" id="gender" value="${student.gender}">
                </td>
            </tr>
            <tr><td><input type="submit" value="删除"></td>
        </table>
    </form>
  </body>
</html>

  

 

insert.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
     
    <title>My JSP 'insert.jsp' starting page</title>
     
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">   
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
 
  </head>
   
  <body>
    <h1>增加数据</h1>
    <form action="Insert.do" method="post">
        <table>
            <tr>
                <td>请插入数据:</td>
                <td>学号:<input type="text" name="stuid" id="stuid">
                </td>
                <td>姓名:<input type="text" name="stuname" id="stuname">
                </td>
                <td>性别:<input type="text" name="gender" id="gender">
                </td>
                <td><input type="submit" value="插入" id="submit">
                </td>
            </tr>
        </table>
    </form>
  </body>
</html>

  

 

update.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
     
    <title>My JSP 'update.jsp' starting page</title>
     
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">   
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
 
  </head>
   
  <body>
    <h1>更新数据</h1>
    <form action="Update.do" method="post">
        <table>
            <tr>
                <td>请输入数据:</td>
                <td>学号:<input type="text" name="stuid" id="stuid" value="${student.stuid}">
                </td>
                <td>姓名:<input type="text" name="stuname" id="stuname" value="${student.stuname}">
                </td>
                <td>性别:<input type="text" name="gender" id="gender" value="${student.gender}">
                </td>
            </tr>
            <tr><td><input type="submit" value="修改"></td>
            <td><input type="reset" value="重置"></td></tr>
        </table>
    </form>
  </body>
</html>

  

代码完美运行!!!大笑







 

posted @   Lost blog  阅读(1230)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现




点击右上角即可分享
微信分享提示