11.5--Java期中考试

这次的期中考试难度较低,只需要实现一个简单的添加功能,但是后续的增删改查四个功能会逐步完善。这个添加功能和我之前实现的课程添加相差不多,需要把选框中的数据闯进数据库。

知识:mysql数据库+Servlet+jsp+javaweb

环境:idea或eclipse,这次我用的是eclipse

这次的题目名称是形成信息统计系统,就是平常疫情统计信息时的表格。

目录结构

11.5--Java期中考试

 

 主页面

11.5--Java期中考试

 

 添加截图

11.5--Java期中考试

 

 下面是我的代码

1、在数据库进行建表(此处省略)和连接数据库

 1 package dao;
 2 
 3 import java.sql.*;
 4 
 5 public class DBUtil {
 6     static String url="jdbc:mysql://localhost:3306/数据库名";
 7     static String passwd="数据库密码";
 8     static String user="root";
 9 
10     public static Connection getConnection(){
11         Connection conn=null;
12         try {
13             Class.forName("com.mysql.jdbc.Driver");
14             conn= DriverManager.getConnection(url,user,passwd);
15             System.out.println("连接成功");
16         } catch (Exception e) {
17             System.out.println("连接失败");
18             e.printStackTrace();
19         }
20         return conn;
21     }
22     public static void close(Statement stmt, Connection conn, PreparedStatement ps, ResultSet rs){
23         if(stmt!=null){
24             try {
25                 stmt.close();
26             } catch (SQLException e) {
27                 e.printStackTrace();
28             }
29         }
30         if(conn!=null){
31             try {
32                 conn.close();
33             } catch (SQLException e) {
34                 e.printStackTrace();
35             }
36         }
37         if(ps!=null){
38             try {
39                 ps.close();
40             } catch (SQLException e) {
41                 e.printStackTrace();
42             }
43         }
44 
45         if(rs!=null){
46             try {
47                 rs.close();
48             } catch (SQLException e) {
49                 e.printStackTrace();
50             }
51         }
52     }
53 }

2、建立实体类,这里我均设置为字符串

 1 package entity;
 2 
 3 public class Stud {
 4     private String stuname;
 5     private String id;
 6     private String stuclass;
 7     private String college;
 8     private String phone;
 9     private String health;
10     private String trip;
11     private String other0;
12 
13     public String getStuname() {
14         return stuname;
15     }
16 
17     public void setStuname(String stuname) {
18         this.stuname = stuname;
19     }
20 
21     public String getId() {
22         return id;
23     }
24 
25     public void setId(String id) {
26         this.id = id;
27     }
28 
29     public String getStuclass() {
30         return stuclass;
31     }
32 
33     public void setStuclass(String stuclass) {
34         this.stuclass = stuclass;
35     }
36 
37     public String getCollege() {
38         return college;
39     }
40 
41     public void setCollege(String college) {
42         this.college = college;
43     }
44 
45     public String getPhone() {
46         return phone;
47     }
48 
49     public void setPhone(String phone) {
50         this.phone = phone;
51     }
52 
53     public String getHealth() {
54         return health;
55     }
56 
57     public void setHealth(String health) {
58         this.health = health;
59     }
60 
61     public String getTrip() {
62         return trip;
63     }
64 
65     public void setTrip(String trip) {
66         this.trip = trip;
67     }
68 
69     public String getOther0() {
70         return other0;
71     }
72 
73     public void setOther0(String other0) {
74         this.other0 = other0;
75     }
76 }

3、设计方法,将数据填进数据库

 1 package dao;
 2 
 3 import entity.Stud;
 4 
 5 import java.sql.Connection;
 6 import java.sql.PreparedStatement;
 7 import java.sql.ResultSet;
 8 import java.sql.SQLException;
 9 
10 public class Add {
11     Connection conn=(Connection) DBUtil.getConnection();
12 
13     public boolean add(Stud stu){
14         boolean flag=false;
15         ResultSet rs=null;
16         String sql="insert into 表名 values(?,?,?,?,?,?,?,?)";
17         try {
18             PreparedStatement pstmt= conn.prepareStatement(sql);
19             pstmt.setString(1,stu.getStuname());
20             pstmt.setString(2, stu.getId());
21             pstmt.setString(3,stu.getStuclass());
22             pstmt.setString(4, stu.getCollege());
23             pstmt.setString(5, stu.getPhone());
24             pstmt.setString(6,stu.getHealth());
25             pstmt.setString(7,stu.getTrip());
26             pstmt.setString(8,stu.getOther0());
27             int i= pstmt.executeUpdate();//判断方法是否执行成功,可删去。
28             pstmt.close();
29             conn.close();
30             if(i>0) flag=true;
31         } catch (SQLException e) {
32             e.printStackTrace();
33         }
34         return flag;
35     }
36 }

4、建立Servlet(其建立方法较特殊,下面我会介绍),后端数据处理,页面进行跳转

 1 package Servlet;
 2 
 3 import dao.Add;
 4 import entity.Stud;
 5 
 6 import javax.servlet.*;
 7 import javax.servlet.http.*;
 8 import javax.servlet.annotation.*;
 9 import java.io.IOException;
10 import java.util.Arrays;
11 
12 @WebServlet(name = "addServlet", value = "/addServlet")
13 public class addServlet extends HttpServlet {
14     @Override
15     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
16         request.setCharacterEncoding("UTF-8");
17         response.setContentType("text/html;charset=utf-8");
18 
19         String stuname=request.getParameter("stuname");
20         String id=request.getParameter("id");
21         String stuclass=request.getParameter("stuclass");
22         String college=request.getParameter("college");
23         String phone=request.getParameter("phone");
24         String health=request.getParameter("health");
25         String [] h=request.getParameterValues("trip");
26         String trip=Arrays.toString(h);
27         trip=trip.substring(1,trip.length()-1);//实现多选数据进库
28         String other0=request.getParameter("other0");
29         
30 
31         Stud stud=new Stud();
32         stud.setStuname(stuname);
33         stud.setId(id);
34         stud.setStuclass(stuclass);
35         stud.getStuclass();
36         stud.setCollege(college);
37         stud.setPhone(phone);
38         stud.setHealth(health);
39         stud.setTrip(trip);
40         stud.setOther0(other0);
41         Add s=new Add();
42         try{
43             s.add(stud);
44             response.sendRedirect(request.getContextPath()+"/success.jsp");
45         }catch(Exception e){
46             response.sendRedirect(request.getContextPath()+"/fail.jsp");
47         }
48     }
49 }

5、.jsp界面,在这之后会逐渐使用.html,这里只有main.jsp,success.jsp 和fail.jsp非常简单,不再介绍

 1 <%--
 2   Created by IntelliJ IDEA.
 3   User: 贾梓钊
 4   Date: 2021/11/5
 5   Time: 14:13
 6   To change this template use File | Settings | File Templates.
 7 --%>
 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 9 <html>
10 <head>
11     <meta charset="UTF-8">
12     <title>行程统计</title>
13 </head>
14 <body bgcolor="aqua">
15 <div id="addSubjectForm" align="center">
16     <form action="addServlet" method="post">
17     <tr>
18         <td>姓名:</td>
19         <td><input type="text" name="stuname" size="20"><br></td>
20     </tr>
21     <tr>
22         <td>学号:</td>
23         <td><input type="text" name="id" size="20"><br></td>
24     </tr>
25     <tr>
26         <td>学生类别:</td>
27         <td><input type="checkbox" name="stuclass" value="本科生">本科生
28         <input type="checkbox" name="stuclass" value="研究生">研究生
29         </td>
30     </tr>
31     <br>
32     <tr>
33     <td>电话:</td>
34     <td><input type="text" name="phone" size="20">
35     </tr>
36     <br>
37     <tr>
38         <td>院系:</td>
39         <select name="college">
40             <option value="土木学院">土木学院</option>
41             <option value="机械学院" >机械学院</option>
42             <option value="交通学院" >交通学院</option>
43             <option value="信息学院" >信息学院</option>
44             <option value="经管学院" >经管学院</option>
45         </select>
46     </tr>
47     <br>
48     <tr>
49         <td>健康码:</td>
50         <td><input type="checkbox" name="health" value="绿色">绿色
51         <input type="checkbox" name="health" value="黄色">黄色
52         <input type="checkbox" name="health" value="红色">红色</td>
53     </tr>
54     <br>
55     <tr>
56         <td>行程统计:</td>
57         <td>
58             <input type="checkbox" name="trip" value="10月30日去过人民医院">10月30日去过人民医院<br>
59             <input type="checkbox" name="trip" value="10月25日以来去过深泽县人民医院">10月25日以来去过深泽县人民医院<br>
60             <input type="checkbox" name="trip" value="10月16日以来去过深泽县庄泽村">10月16日以来去过深泽县庄泽村<br>
61             <input type="checkbox" name="trip" value="10月29日以来去过黑龙江哈尔滨市或者黑河市">10月29日以来去过黑龙江哈尔滨市或者黑河市<br>
62             <input type="checkbox" name="trip" value="10月18日以来途径贵州遵义市;北京丰台、昌平">10月18日以来途径贵州遵义市;北京丰台、昌平<br>
63             <input type="checkbox" name="trip" value="10月17日以来到过湖南长沙;青海海东市">10月17日以来到过湖南长沙;青海海东市<br>
64         </td>
65     </tr>
66     <br>
67     <tr>
68         <td>其他涉疫信息需要填报的:</td>
69         <td><input type="text" name="other0" size="50"><br></td>
70     </tr>
71     <tr>
72         <td colspan="2"><div align="center"><input type="submit" value="提交">
73         </div>
74     </form>
75 </div>
76 </body>
77 </html>

eclipse建立Servlet

右键src

11.5--Java期中考试

 

 选择other,进入下一界面

11.5--Java期中考试

 

 选择Servlet,如果没有,进行搜索即可。

至于idea建立servlet的方法,上一篇博客中有,这里就不再介绍。

上一篇:解决Oracle监听错误的一种办法


下一篇:【LeetCode】198. 打家劫舍