设计思想:
此实验要完成课程的保存,则此实验要考察我们的是对数据库进行增的操作,而判断输入的教师名称只能从题目中给的五个人中选取,则需要在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>
运行结果:
项目计划日志:
时间记录日志:
缺陷记录日志: