一.項目需求
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>
四.運行結果截圖