一.项目需求
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 block18 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 block29 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 block43 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 block54 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 block65 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 block33 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"%>课程添加页面
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 7 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 else24 {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发生错误 : <%=e.getMessage() %>
37 <%38 }39 40 41 42 %>43 44 45 46 47
四.运行结果截图