課程資訊管理系統詳細教程
一、專案要求
1 、專案需求:
課程管理是各大院校的管理工作中尤為重視的一項工作,它一直以來是學校管
理的一項重要的衡量指標。石家莊鐵道大學為了提高工作效率,實現資訊化管理,
要求開發課程管理系統。
2. 系統要求與功能設計
2.1 頁面 功能 要求
(1)能夠在 Tomcat 伺服器中正確部署,並通過瀏覽器檢視;(1 分)
(2)網站頁面整體風格統一;
(3)主頁面:要求顯示新增新課程、修改課程資訊、刪除課程資訊、查詢課程資訊四個子選單。(1 分)
(4)新增新課程頁:(3 分)
① 完成新增新課程頁面設計,頁面內容如下所示(0.5 分)
②新課程資訊必須唯一,如有重複,提示使用者“課程名稱重複,重新錄入”; (0.5
分)
③要求判斷任課教師為王建民、劉立嘉、劉丹、王輝、楊子光五位教師的其中
一位。(0.5 分)
④要求上課地點開頭為“一教、二教、三教、基教”中的一種。(0.5 分)
⑤將新課程資訊新增入庫。(1 分)
評分標準:
①完成新增新課程頁面(未完成 0 分,完成 0.5 分)
②儲存新課程資訊入庫(未完成 0 分,完成 1 分)
③判斷課程名稱是否唯一(未完成 0 分,完成 0.5 分)
④ 判斷任課教師為王建民、劉立嘉、劉丹、王輝、楊子光五位教師的其中一位
(未完成 0 分,完成 0.5 分)
⑤判斷上課地點開頭為“一教、二教、三教、基教”中的一種
(4)修改課程資訊頁:可對課程名稱、任課教師、上課地點進行修改。(任課
教師和上課地點必須符合錄入要求)。(2 分)
評分標準:
①完成修改課程資訊頁面(未完成 0 分,完成 0.5 分)
② 完成資料庫中資訊更新(未完成 0 分,完成 1 分)
③修改資訊判斷是否符合要求。(未完成 0 分,完成 0.5 分)
(5)刪除課程資訊頁:錄入課程名稱,顯示詳細資訊後,點選“刪除”按鈕,
刪除該資訊。
評分標準:
①完成刪除課程資訊頁面(未完成 0 分,完成 0.5 分)
②輸入課程名稱後可顯示其餘資訊。(未完成 0 分,完成 0.5 分)
③對應刪除資料庫中資訊(未完成 0 分,完成 1 分)
(6)查詢課程資訊頁面:
輸入課程名稱、任課教師、上課地點等資訊可以實現模糊查詢。
評分標準:
①完成查詢課程資訊頁面(未完成 0 分,完成 0.5 分)
②實現按照任意條件進行模糊查詢。(未完成 0 分,完成 1 分)
③結果資訊顯示包括全部資訊。(未完成 0 分,完成 0.5 分,缺少一項扣除 0.5
分)
2.2 功能要求
(1)設計出合理的資料庫和資料表,要求使用 mysql、sqlserver、oracle 三
種資料庫中一種(1 分)
(2)資料庫連線正常(1 分)。
(3)使用 Serverlet 實現頁面互動(1 分)。
(4)使用 Java Bean 封裝資料庫連線操作(1 分。)
二、專案分析
1、資料儲存需要資料庫,第一個需要掌握的點即資料庫的連線及資料庫的增刪改查
2、web端的程式必然需要用到jsp介面的設計
3、Serverlet技術實現不同jsp介面間的傳值互動
三、專案實踐
1、利用資料庫視覺化工具Navicat建立資料庫及資料表
需要注意的是除了專案中要求的三個資料之外,還要新增一個int型的ID屬性並且設定為主鍵,目的是為了之後傳值、查詢、修改的方便
2、使用Javabean進行資料庫的連線;
import java.sql.DriverManager; public class Connection { public java.sql.Connection getCon() { try{ Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/classmanager?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true"; String user="root"; String password="******"; java.sql.Connection conn= DriverManager.getConnection(url, user, password); return conn; }catch(Exception e) { e.printStackTrace(); return null; } } }
其中“******”是mysql資料庫密碼
2、要建立一個實體類來接收資料
package classInfo; public class classInfo { private String classname; private int id; public int getId() { return id; } public void setId(int id) { this.id = id; } private String classteacher; private String classwhere; public String getClassname() { return classname; } public void setClassname(String classname) { this.classname = classname; } public String getClassteacher() { return classteacher; } public void setClassteacher(String classteacher) { this.classteacher = classteacher; } public String getClasswhere() { return classwhere; } public void setClasswhere(String classwhere) { this.classwhere = classwhere; } }
3、使用javabean進行資料庫的操作實現增刪改查;
package classService; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import classInfo.classInfo; public class classService { private Connection conn; private java.sql.PreparedStatement pstmt; public classService() { conn=new connection.Connection().getCon(); } public boolean addCla(classInfo cla){ try { pstmt=conn.prepareStatement("insert into class"+"(classname,classteacher,classwhere)"+"values(?,?,?)"); pstmt.setString(1, cla.getClassname()); pstmt.setString(2, cla.getClassteacher()); pstmt.setString(3, cla.getClasswhere()); pstmt.executeUpdate(); return true; } catch (SQLException e) { e.printStackTrace(); return false; } } public ArrayList queryAllCla() { ArrayList clas=new ArrayList(); try { pstmt=conn.prepareStatement("select * from class"); ResultSet rs=pstmt.executeQuery(); while(rs.next()) { classInfo cla=new classInfo(); cla.setId(rs.getInt(1)); cla.setClassname(rs.getString(2)); cla.setClassteacher(rs.getString(3)); cla.setClasswhere(rs.getString(4)); clas.add(cla); } return clas; } catch(SQLException e) { e.printStackTrace(); return null; } } public boolean updateCla(classInfo cla) { try { pstmt=conn.prepareStatement("update class set classname=?,classteacher=? ,classwhere=? where id=? "); pstmt.setString(1, cla.getClassname()); pstmt.setString(2, cla.getClassteacher()); pstmt.setString(3, cla.getClasswhere()); pstmt.setInt(4, cla.getId()); pstmt.executeUpdate(); return true; }catch(Exception e) { e.printStackTrace(); return false; } } public classInfo queryclaByid(int id) { try { pstmt=conn.prepareStatement("select * from class where ID=?"); pstmt.setInt(1, id); ResultSet rs=pstmt.executeQuery(); if(rs.next()) { classInfo cla=new classInfo(); cla.setId(rs.getInt(1)); cla.setClassname(rs.getString(2)); cla.setClassteacher(rs.getString(3)); cla.setClasswhere(rs.getString(4)); return cla; } return null; } catch(SQLException e) { e.printStackTrace(); return null; } } public boolean deleteCla(int id) { try { pstmt=conn.prepareStatement("delete from class where ID=?"); pstmt.setInt(1, id); pstmt.executeUpdate(); return true; }catch(Exception e) { e.printStackTrace(); return false; } } }
3、利用HTML、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>Insert title here</title> </head> <frameset rows="10%,*"> <frame src="top.jsp"> <frameset cols="10%,*"> <frame src="main_lift.jsp"> <frame src="main_right.jsp" name="main_right"> </frameset> </frameset> <body> </body> </html>
<%@ 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>Insert title here</title> </head> <body> <a href="inputclassinfo.jsp" target="main_right" >課程資訊錄入</a><br/> <a href="modifyclainfo.jsp" target="main_right" >課程資訊修改</a><br/> <a href="deleteclainfo.jsp" target="main_right" >刪除課程資訊</a><br/> <a href="displayclainfo.jsp" target="main_right" >查詢學生資訊</a><br/> </body> </html>
<%@ 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>Insert title here</title> </head> <body> </body> </html>
<%@ 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>Insert title here</title> <style type="text/css"> .mytxt:focus { border: 1px solid #fafafa; -webkit-box-shadow: 0px 0px 6px #007eff; -moz-box-shadow: 0px 0px 5px #007eff; box-shadow: 0px 0px 5px #007eff; } </style> </head> <body> <form action="inputclassinfo_result.jsp" method="post"> <table> <tr> <td align="center" colspan="2">課程資訊錄入</td></tr> <tr> <tr> <td>課程名稱</td> <td><input type="text" size=20 name="classname" class="mytxt"/></td> </tr> <tr> <td>任課教師</td> <td><select name="classteacher" class="mytxt"> <option>劉力嘉</option> <option>劉丹</option> <option selected="selected">王建民</option> <option>王輝</option> <option>楊子光</option> </select> </td> </tr> <tr> <td>上課地點</td> <td> <select name="classwhere" class="mytxt"> <option>一教</option> <option>二教</option> <option>三教</option> <option selected="selected">基教</option> </select> </td> </tr> <tr> <td align="center" colspan="2"> <input type="submit" value="儲存"> <input type="reset" value="重置"> </tr> </table> </form> </body> </html>
<%@ 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>Insert title here</title> </head> <body> <% request.setCharacterEncoding("utf-8"); %> <jsp:useBean id="cla" class="classInfo.classInfo"></jsp:useBean> <jsp:setProperty property="*" name="cla"/> <jsp:useBean id="claSer" class="classService.classService"></jsp:useBean> <% if(claSer.addCla(cla)){ out.print("success!!"); %> <script > alert("課程資訊錄入成功!"); </script> <% }else{ out.print("error"); %> <script > alert("課程資訊錄入失敗!"); </script> <% }%> </body> </html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@page import="classInfo.classInfo"%> <%@page import="java.util.Iterator"%> <%@page import="java.util.ArrayList"%> <!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>Insert title here</title> </head> <body> <jsp:useBean id="cla" class="classService.classService"></jsp:useBean> <% ArrayList clas=cla.queryAllCla(); //out.print(stus.size()); Iterator iter=clas.iterator(); %> <table> <tr> <td>課程名稱</td> <td>任課教師</td> <td>上課地點</td> </tr> <% int i=0; while(iter.hasNext()) { classInfo classx=(classInfo)iter.next(); %> <tr <%if(i%2==0){ %>bgcolor="#F0F8FF"<%} %>> <td> <%=classx.getClassname() %></td> <td> <%=classx.getClassteacher() %></td> <td> <%=classx.getClasswhere()%></td> <td> <a href="modifyOnecla.jsp?id=<%=classx.getId()%>">修改</a></td> </tr> <% i++; } %> </table> </body> </html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@page import="classInfo.classInfo"%> <!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>Insert title here</title> </head> <body> <jsp:useBean id="cla" class="classService.classService"></jsp:useBean> <% int id=Integer.parseInt(request.getParameter("id")); classInfo classx=cla.queryclaByid(id); %> <form action="modifyOnecla_result.jsp" method="post"> <table> <tr><td colspan="2">修改課程資訊</td></tr> <tr> <td>課程名稱</td> <td><input type="text" name="classname" value=""/></td> </tr> <tr> <td>任課教師</td> <td> <select name="classteacher"> <option <%if(classx.getClassteacher().equals("劉丹")){ %> selected="selected"<%} %>>劉丹</option> <option <%if(classx.getClassteacher().equals("劉力嘉")){ %> selected="selected" <%} %>>劉力嘉</option> <option <%if(classx.getClassteacher().equals("王建民")){ %> selected="selected" <%} %>>王建民</option> <option <%if(classx.getClassteacher().equals("王輝")){ %> selected="selected" <%} %>>王輝</option> <option <%if(classx.getClassteacher().equals("楊子光")){ %> selected="selected" <%} %>>楊子光</option> </select> </td> </tr> <tr> <td>上課地點</td> <td> <select name="classwhere"> <option <%if(classx.getClasswhere().equals("一教")){ %> selected="selected"<%} %>>一教</option> <option <%if(classx.getClasswhere().equals("二教")){ %> selected="selected"<%} %>>二教</option> <option <%if(classx.getClasswhere().equals("三教")){ %> selected="selected"<%} %>>三教</option> <option <%if(classx.getClasswhere().equals("基教")){ %> selected="selected"<%} %>>基教</option> </select> </td> </tr> <tr> <td align="center" colspan="2"> <input type="submit" value="提交"> <input type="reset" value="重置"> <input type="hidden" name ="id" value="<%=classx.getId()%>"> </tr> </table> </form> </body> </html>
<%@ 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>Insert title here</title> </head> <body> <%request.setCharacterEncoding("utf-8"); %> <jsp:useBean id="cla" class="classInfo.classInfo"></jsp:useBean> <jsp:setProperty property="*" name="cla" /> <jsp:useBean id="claSer" class="classService.classService"></jsp:useBean> <% if(claSer.updateCla(cla)){ out.print("success"); %> <script > alert("課程資訊修改成功!"); </script> <% }else{ out.print("error");%> <script > alert("課程資訊修改失敗!"); </script> <%} %> </body> </html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@page import="classInfo.classInfo"%> <%@page import="java.util.Iterator"%> <%@page import="java.util.ArrayList"%> <!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>Insert title here</title> </head> <body> <jsp:useBean id="cla" class="classService.classService"></jsp:useBean> <% ArrayList stus=cla.queryAllCla(); //out.print(stus.size()); Iterator iter=stus.iterator(); %> <table> <tr> <td>課程名稱</td> <td>任課教師</td> <td>上課地點</td> </tr> <% int i=0; while(iter.hasNext()) { classInfo classx=(classInfo)iter.next(); %> <tr <%if(i%2==0){ %>bgcolor="#F0F8FF"<%} %>> <td> <%=classx.getClassname() %></td> <td> <%=classx.getClassteacher() %></td> <td> <%=classx.getClasswhere()%></td> </tr> <% i++; } %> </table> </body> </html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@page import="classInfo.classInfo"%> <%@page import="java.util.Iterator"%> <%@page import="java.util.ArrayList"%> <!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>Insert title here</title> </head> <body> <jsp:useBean id="cla" class="classService.classService"></jsp:useBean> <% ArrayList stus=cla.queryAllCla(); //out.print(stus.size()); Iterator iter=stus.iterator(); %> <table> <tr> <td>課程名稱</td> <td>任課教師</td> <td>上課地點</td> </tr> <% int i=0; while(iter.hasNext()) { classInfo classx=(classInfo)iter.next(); %> <tr <%if(i%2==0){ %>bgcolor="#F0F8FF"<%} %>> <td> <%=classx.getClassname() %></td> <td> <%=classx.getClassteacher() %></td> <td> <%=classx.getClasswhere()%></td> <td> <a href="deleteOnecla.jsp?id=<%=classx.getId()%>">刪除</a></td> </tr> <% i++; } %> </table> </body> </html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@page import="classInfo.classInfo"%> <%@page import="java.util.Iterator"%> <%@page import="java.util.ArrayList"%> <!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>Insert title here</title> </head> <body> <jsp:useBean id="claSer" class="classService.classService"></jsp:useBean> <% int id=Integer.parseInt(request.getParameter("id")); classInfo classx=claSer.queryclaByid(id); if(claSer.deleteCla(id)){ out.print("success!!"); %> <script > alert("課程資訊刪除成功!"); </script> <% }else{ out.print("false"); %> <script > alert("課程資訊刪除失敗!"); </script> <% }%> </body> </html>
注意:每段程式碼都是一個JSP頁面
這只是我的一點見解,可能存在不足,還請大牛們指教!