1. 程式人生 > >課程資訊管理系統詳細教程

課程資訊管理系統詳細教程

一、專案要求

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頁面

這只是我的一點見解,可能存在不足,還請大牛們指教!