一.项目需求
1.设计添加新课程界面。
2.在后台数据库中建立相应的表结构存储课程信息。
3.实现新课程添加的功能。 要求限定教师为系中的5位老师。
4.要求限制上课地点开头为“一教、二教、三教、基教”中的一种。
5.实现数据存储功能。
二.设计思想
1.提取到需求中最主要的对象为课程,所以首先创建课程类。
该类包含三个参数:a.课程名称 b.教师名称 c.上课地点。构建get和set函数
2.构建一个辅助类,用来创建数据库连接
3.创建一个接口,其中有一个静态方法,传入一个课程类的对象。能够实现将该对象传入数据库
4.创建一个异常,用来在课程出错时,弹出异常信息。
5.创建一个前段界面,显示界面信息
6.创建一个后端页面,接受来自前端的消息,并且对其进行判断。如果在限定条件内,则添加到数据库。否则,抛出异常,跳转页面
三.源程序代码
(1)java
1.创建课程类
1 package com.jaovo.msg.model; 2 3 public class HaveClass 4 { 5 private String teachername; 6 private String place; 7 private String classname; 8 9 public String getTeachername() { 10 return teachername; 11 } 12 public void setTeachername(String teachername) { 13 this.teachername = teachername; 14 } 15 public String getPlace() { 16 return place; 17 } 18 public void setPlace(String place) { 19 this.place = place; 20 } 21 public String getClassname() { 22 return classname; 23 } 24 public void setClassname(String classname) { 25 this.classname = classname; 26 } 27 28 }
2.创建辅助类,完成数据库连接
1 package com.jaovo.msg.Util; 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 { 11 12 public static Connection getConnection() { 13 try { 14 15 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); 16 } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { 17 // TODO Auto-generated catch block 18 e.printStackTrace(); 19 } 20 String user = "sa"; 21 String password = "jisuan@10Q"; 22 String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=OnClass"; 23 Connection connection = null; 24 try { 25 26 connection = DriverManager.getConnection(url,user,password); 27 } catch (SQLException e) { 28 // TODO Auto-generated catch block 29 e.printStackTrace(); 30 } 31 return connection; 32 } 33 34 35 public static void close(Connection connection ) { 36 try { 37 if (connection != null) { 38 connection.close(); 39 } 40 41 } catch (SQLException e) { 42 // TODO Auto-generated catch block 43 e.printStackTrace(); 44 } 45 } 46 public static void close(PreparedStatement preparedStatement ) { 47 try { 48 if (preparedStatement != null) { 49 preparedStatement.close(); 50 } 51 52 } catch (SQLException e) { 53 // TODO Auto-generated catch block 54 e.printStackTrace(); 55 } 56 } 57 public static void close(ResultSet resultSet ) { 58 try { 59 if (resultSet != null) { 60 resultSet.close(); 61 } 62 63 } catch (SQLException e) { 64 // TODO Auto-generated catch block 65 e.printStackTrace(); 66 } 67 } 68 69 }
3.创建一个类,用来实现添加到数据库中
1 package com.jaovo.msg.dao; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 8 import com.jaovo.msg.Util.DBUtil; 9 import com.jaovo.msg.model.HaveClass; 10 11 12 public class ClassDaoImpl { 13 14 public void add(HaveClass claz) 15 { 16 //获得链接对象 17 Connection connection = DBUtil.getConnection(); 18 19 //准备sql语句 20 String sql = "insert into t_class(teachername,classname,place) values(?,?,?)"; 21 PreparedStatement preparedStatement = null; 22 try { 23 //创建语句传输对象 24 preparedStatement = connection.prepareStatement(sql); 25 26 preparedStatement = connection.prepareStatement(sql); 27 preparedStatement.setString(1, claz.getTeachername()); 28 preparedStatement.setString(2, claz.getClassname()); 29 preparedStatement.setString(3, claz.getPlace()); 30 preparedStatement.executeUpdate(); 31 } catch (SQLException e) { 32 // TODO Auto-generated catch block 33 e.printStackTrace(); 34 }finally { 35 //关闭资源 36 37 DBUtil.close(preparedStatement); 38 DBUtil.close(connection); 39 } 40 41 } 42 43 }
4.使用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> <title>课程添加页面</title> </head> <body> <form action="add.jsp" method="get"> <table align="center" border="1" width="500"> <tr> <td>课程名称 : </td> <td> <input type="text" name="classname" /> </td> </tr> <tr> <td>任课教师:</td> <td> <input type="text" name="teachername" /> </td> </tr> <tr> <td>上课地点:</td> <td> <input type="text" name="place" /> </td> </tr> <tr align="center"> <td colspan="2"> <input type="submit" value="提交" /> <input type="reset" value="重置" /> </td> </tr> </table> </form> </body> </html>
5.创建后端界面,完成对数值的校验
1 <%@page import="com.jaovo.msg.Util.ClassException"%> 2 <%@page import="com.jaovo.msg.dao.ClassDaoImpl"%> 3 <%@page import="com.jaovo.msg.model.HaveClass"%> 4 <%@ page language="java" contentType="text/html; charset=UTF-8" 5 pageEncoding="UTF-8"%> 6 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 7 <html> 8 <% 9 //接收客户端传递过来的参数 10 11 String teachername = request.getParameter("teachername"); 12 String classname = request.getParameter("classname"); 13 String place = request.getParameter("place"); 14 try{ 15 if(!teachername.trim().equals("王建民")&&!teachername.trim().equals("刘立嘉")&&!teachername.trim().equals("刘丹")&&!teachername.trim().equals("王辉")&&!teachername.trim().equals("杨子光")) 16 { 17 throw new ClassException("不能输入规定之外的老师名称"); 18 } 19 else if(!place.trim().startsWith("基教")&&!place.trim().startsWith("一教")&&!place.trim().startsWith("二教")&&!place.trim().startsWith("三教")) 20 { 21 throw new ClassException("不能输入规定之外的地点名称!"); 22 } 23 else 24 { 25 HaveClass haveclass = new HaveClass(); 26 haveclass.setTeachername(teachername); 27 haveclass.setClassname(classname); 28 haveclass.setPlace(place); 29 ClassDaoImpl classDao = new ClassDaoImpl(); 30 classDao.add(haveclass); 31 } 32 33 }catch(ClassException e){ 34 35 %> 36 <h2 style="color:red ; font-size:50px">发生错误 : <%=e.getMessage() %></h2> 37 <% 38 } 39 40 41 42 %> 43 44 45 46 47 </html>
四.运行结果截图