软件工程概论(课堂测试02)

设计思想:

此实验要完成课程的保存,则此实验要考察我们的是对数据库进行增的操作,而判断输入的教师名称只能从题目中给的五个人中选取,则需要在jsp中传输参数是进行判断看是否是五个人名中的一个,是则继续否则抛出异常,之后的上课地点要求开头以特定文字开头则跟上一问差不多,就是变成了String类型对象的startsWith函数判断是否以某一特定字符开头。

 

DBUtil.java

 1 package user;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 
 9 public class DBUtil {
10     public  static  Connection getConnection() {
11         try {
12             Class.forName("com.mysql.jdbc.Driver").newInstance();
13         } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
14             // TODO Auto-generated catch block
15             e.printStackTrace();
16         }
17         String user = "root";
18         String password = "root";
19         String url = "jdbc:mysql://localhost:3306/teacher?user=root&password=root&useUnicode=true&characterEncoding=utf-8";
20         Connection connection = null;
21         try {
22              connection = DriverManager.getConnection(url,user,password);
23         } catch (SQLException e) {
24             // TODO Auto-generated catch block
25             e.printStackTrace();
26         }
27         return connection;
28     }
29     
30     public static void close(Connection connection ) {
31         try {
32             if (connection != null) {
33                 connection.close();
34             }
35             
36         } catch (SQLException e) {
37             // TODO Auto-generated catch block
38             e.printStackTrace();
39         }
40     }
41     public static void close(PreparedStatement preparedStatement ) {
42         try {
43             if (preparedStatement != null) {
44                 preparedStatement.close();
45             }
46             
47         } catch (SQLException e) {
48             // TODO Auto-generated catch block
49             e.printStackTrace();
50         }
51     }
52     public static void close(ResultSet resultSet ) {
53         try {
54             if (resultSet != null) {
55                 resultSet.close();
56             }
57             
58         } catch (SQLException e) {
59             // TODO Auto-generated catch block
60             e.printStackTrace();
61         }
62     }
63 
64 }

teacher.java

 1 package user;
 2 
 3 public class teacher {
 4     private String username;
 5     private String teacher;
 6     private String place;
 7     public String getUsername() {
 8         return username;
 9     }
10     public void setUsername(String username) {
11         this.username = username;
12     }
13     public String getTeacher() {
14         return teacher;
15     }
16     public void setTeacher(String teacher) {
17         this.teacher = teacher;
18     }
19     public String getPlace() {
20         return place;
21     }
22     public void setPlace(String place) {
23         this.place = place;
24     }
25 }

teacherDao.java

 1 package user;
 2 
 3 import java.sql.Connection;
 4 import java.sql.PreparedStatement;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 public class teacherDao {
 8     public void baocun(teacher tr)
 9     {
10         Connection connection=DBUtil.getConnection();
11         String sql = "select count(*) from t_teacher where teacher = ?";
12         PreparedStatement preparedStatement=null;
13         ResultSet resultSet=null;
14         try {
15             preparedStatement = connection.prepareStatement(sql);
16             preparedStatement.setString(1,tr.getTeacher());
17             resultSet = preparedStatement.executeQuery();
18             while(resultSet.next()) {
19                 if (resultSet.getInt(1) > 0) {
20                     throw new UserException("用户已存在") ;
21                 }
22             }
23             sql = "insert into t_teacher(username,teacher,place) value (?,?,?)";
24             preparedStatement = connection.prepareStatement(sql);
25             preparedStatement.setString(1, tr.getUsername());
26             preparedStatement.setString(2, tr.getTeacher());
27             preparedStatement.setString(3, tr.getPlace());
28             preparedStatement.executeUpdate();
29         } catch (SQLException e) {
30             // TODO Auto-generated catch block
31             e.printStackTrace();
32         }
33         finally {
34             //关闭资源
35             DBUtil.close(resultSet);
36             DBUtil.close(preparedStatement);
37             DBUtil.close(connection);
38         }
39     }
40 
41 }

UserException.java

 1 package user;
 2 
 3 public class UserException extends RuntimeException{
 4 
 5     public UserException() {
 6         super();
 7         // TODO Auto-generated constructor stub
 8     }
 9 
10     public UserException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
11         super(message, cause, enableSuppression, writableStackTrace);
12         // TODO Auto-generated constructor stub
13     }
14 
15     public UserException(String message, Throwable cause) {
16         super(message, cause);
17         // TODO Auto-generated constructor stub
18     }
19 
20     public UserException(String message) {
21         super(message);
22         // TODO Auto-generated constructor stub
23     }
24 
25     public UserException(Throwable cause) {
26         super(cause);
27         // TODO Auto-generated constructor stub
28     }
29  
30 }

addinput.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%response.setCharacterEncoding("UTF-8");%>
<!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>添加课程信息</title>
</head>
<body>
   <form action='add.jsp' method ="post">
   <% 
   if(request.getAttribute("error")!=null||"".equals(request.getAttribute("error")))
    {
       %>
       <%=request.getAttribute("error") %>
       <%
    }
   %>
   <% 
      if(request.getAttribute("error1")!=null||"".equals(request.getAttribute("error1")))
    {
       %>
       <%=request.getAttribute("error1") %>
       <%
    }
   %>
    <% 
      if(request.getAttribute("error2")!=null||"".equals(request.getAttribute("error2")))
    {
       %>
       <%=request.getAttribute("error2") %>
       <%
    }
   %>
   <% 
      if(request.getAttribute("error3")!=null||"".equals(request.getAttribute("error3")))
    {
       %>
       <%=request.getAttribute("error3") %>
       <%
    }
   %>
    <% 
      if(request.getAttribute("error4")!=null||"".equals(request.getAttribute("error4")))
    {
       %>
       <%=request.getAttribute("error4") %>
       <%
    }
   %>
   <table align="center" >
        <tr>
          <td>课程名称:</td>
          <td>
             <input type="text" name="username"/>
          </td>
        </tr >
        <tr>
          <td>任课教师:</td>
          <td>
             <input type="text" name="teacher"/>
          </td>
        </tr>
        <tr>
          <td>上课地点:</td>
          <td>
             <input type="text" name="place"/>
          </td>
        </tr>
        <tr align="center">
                <td colspan="2">
                    <input type="submit" value="保存" />
                </td>
            </tr>
            </table>
            </form>
</body>
</html>

add.jsp

<%@page import="user.teacherDao"%>
<%@page import="user.teacher"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%response.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%
    request.setCharacterEncoding("utf-8"); 
    String username=request.getParameter("username");
    String teacher=request.getParameter("teacher");
    String place=request.getParameter("place");
    if(username==null||"".equals(username.trim())){
        request.setAttribute("error", "课程名称不能为空!");
        %>
        <jsp:forward page="addinput.jsp"></jsp:forward>
     <%
    }
    if(teacher==null||"".equals(teacher.trim())){
         request.setAttribute("error1", "任课教师不能为空!");
         %>
         <jsp:forward page="addinput.jsp"></jsp:forward>
      <%
     }
    if(place==null||"".equals(place.trim())){
         request.setAttribute("error2", "上课地点不能为空!");
         %>
         <jsp:forward page="addinput.jsp"></jsp:forward>
      <%
     }
    if(!("王建民".equals(teacher.trim())||"刘立嘉".equals(teacher.trim())||"刘丹".equals(teacher.trim())||"王辉".equals(teacher.trim())||"杨子光".equals(teacher.trim())))
    {
        request.setAttribute("error3", "任课教师超出范围!");
        %>
        <jsp:forward page="addinput.jsp"></jsp:forward>
        <%
    }
    if(!(place.startsWith("基教")||place.startsWith("一教")||place.startsWith("二教")||place.startsWith("三教")))
    {
        request.setAttribute("error4", "上课地点超出范围!");
        %>
        <jsp:forward page="addinput.jsp"></jsp:forward>
        <%
    }
    teacher tea=new teacher();
    tea.setUsername(username);
    tea.setTeacher(teacher);
    tea.setPlace(place);
    teacherDao user=new teacherDao();
    user.baocun(tea);
    %>
    <jsp:forward page="success.jsp"></jsp:forward><% 
%>
</html>

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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>保存成功</title>
</head>
<body>
保存成功!!<br>
    <a href="addinput.jsp">继续保存</a><br>
</body>
</html>

运行结果:

 

 

项目计划日志:

时间记录日志:

缺陷记录日志:

原文地址:https://www.cnblogs.com/chch157/p/7911360.html