课程信息管理系统详细教程

一、项目要求

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

这只是我的一点见解,可能存在不足,还请大牛们指教!

猜你喜欢

转载自www.cnblogs.com/KYin/p/10092162.html