基于JSP的教务管理系统设计

 

欢迎添加微信互相交流学习哦!

二维码

项目源码:https://gitee.com/oklongmm/biye2




摘 要
教务管理是学校的教务工作的主要内容,其信息量大、信息变动频繁历来是各学校的头疼问题,随着人们对用计算机的使用越来越广泛以及互联网络普及,教务管理也已经基本形成了多元的网络化管理,极大的方便了广大师生,也方便了学校对教务工作的管理,大大的提高了教学质量。
本系统采用FlexBuilder、MyEclipse结合MySQL数据库进行设计,从管理和使用的角度分为两个部分:学校教务管理端和学生使用端。前者主要有系统管理员及任课教师使用,后者则是主要面对在校学生。
本文首先作教务管理系统的功能需求分析,然后对数据库进行需求分析,再在数据库中建立相应的表,并弄清楚数据库中各个表的逻辑关系,接着编写代码,最后调试网站,直到形成用户满意的可以使用的完整系统。
关键词: 教务管理系统; FlexBuilder; MyEclipse; MySQL
The Design and Implementation of Educational Administration System
Abstract
Academic Senate, the school management is the main content, it is informative, information has always been the frequent changes in schools of headache problems, as people used more and more extensive use of computers and the popularization of the Internet, educational administration has been basically formed a multi-network management, a great convenience to teachers and students, but also on the Senate to facilitate the work of the school management, greatly increased the quality of teaching.
The system uses a FlexBuilder, MyEclipse combination of MySQL database design, from the perspective of management and use is divided into two parts: School of Educational Administration and students to use the client side. The former are mainly system administrators and classroom teachers to use, while the latter is the major problems encountered in school.
In this paper, first of all, make the functions of educational management system needs analysis, then the database needs analysis, and then in the database corresponding table, and each database table to clarify the logic of relations, and then write code, debug the final site, until the formation of customer satisfaction The complete system can be used.
Keywords: Educational Administration system; FlexBuilder; MyEclipse; MySQL
目 录
TOC 1-3
1 绪论 1
1.1 课题的研究背景与意义 1
1.1.1 课题的研究背景 1
1.1.2 课题的研究意义 1
1.2 系统的定义及内容简介 1
1.2.1 系统的定义 2
1.2.2 系统的内容简介 2
4.3.2 个人信息修改页面 21
1 绪论
1.1 课题的研究背景与意义
1.1.1 课题的研究背景
目前我国各行各业的信息化建设开展得如火如荼,这种信息化的发展已经影响到了各学校。学校在对学生进行管理时,学生学籍的管理一直都是很麻烦的事情,不仅仅管理起来不易修改和更新,而且学生需要了解本人的信息时,也需要去学校教务处找专门人员。由于这些操作的繁琐性,教务管理系统的开发成为各学校必须的事情,特别是各个高校。
一个成功的教务管理系统,应该能够有效地辅助教务人员工作,提高学校学生的学籍、成绩等管理能力,并且不断完善系统,以便更好的帮助学生、教师、系统管理人员等管理成绩、课程、学籍等。
然而目前许多教务管理系统在使用时,效率低下容易出错,学生、教师资料不易整理,大量丢失,这些无疑都已成为管理学生学籍、教师信息的障碍。这就要求学校能够建立高效的教务管理系统,对学生的选课、查询等操作及流程进行规范化管理,简化业务流程,提高工作效率并防止中间的漏洞;迅速、准确地捕捉用户要求,并加以高效回应。同时需要不断完善系统,增加模块,更好的满足用户需求,简化教务人员的管理工作,尽量做到一切信息化。
1.1.2 课题的研究意义
对于学校教务处而言,最主要的是管理学生的学籍、管理教师的课程教授。如果使用一般的方法来管理,会比较繁琐,管理起来也很有可能出错。为了方便教务人员的管理工作,提高工作效率,同时为了更好地为学生、教师提供服务,有必要开发教务管理系统,使学校的教务管理走上信息化之路,克服人为的种种弊端。
教务管理系统的开发不仅可以减少人力、物力和财力资源的浪费,更重要的是有助于提高教务管理的效率。教务管理人员管理学生学籍、管理教师课程教授时是一项复杂的组织工作,这种复杂性不仅仅指学生学籍变更快,变更人数众多,更突出地表现在教务管理主要对象(即学生)的数据量大,管理起来带来不便,所以开发一个实用、高效的教务管理信息系统是很有必要的。
1.2 系统的定义及内容简介
1.2.1 系统的定义
本系统是方便学校教务人员管理学生学籍、管理教师、方便教师和学生处理日常学籍工作而开发的。现今全国各学校的管理系统正逐步与网络信息技术接轨,对学校的学员信息能够更方便地进行管理,运用教务管理系统实现管理模式的科学化、现代化,大大提高学校教务管理的运行效率和管理水平。因此,在科技、信息和网络技术高速发展的带动下,教务管理系统趋向于集计算机网络技术、科学管理方法等于一体,方便处理教务工作。
由于学校教务管理的特殊性,决定了教务服务的综合性较其他服务更为突出和特殊,而学校教务对用于辅助管理的管理系统要求就相对更高。对于学校教务而言,具有实用意义的管理系统,在硬件上应采用互联网、办公自动化等信息技术,在软件上应融入当代各学校最优秀的管理思想,从而更好地辅助教务人员的管理工作。本课题就基于教务管理的理念和信息技术的结合这样一个出发点而提出的需要。
我国的各学校教师、学生人数众多,学校需要一个足够完善的教务管理系统来管理学生的学籍、选课和教师的授课安排等,所以本系统提供了对学生的学籍管理、对学生的选课、对教师的信息管理等功能,足够教务人员管理日常的教务工作。
1.2.2 系统的内容简介
教务管理系统为教务管理人员管理日常教务工作提供了方便。学生可以使用此系统查询自己已修完课程的成绩、查看自己的学籍信息、选课等;教师可以使用此系统给学生所选的课程打分、查看自己的信息及课程安排情况等;管理员可以使用此系统添加相关用户信息、备份数据等。因此本系统主要实现学生功能、教师功能、管理员功能。
学生功能:个人信息查询、修改;在线选课;密码修改;留言、查看留言等。
教师功能:教学实施计划查询;选课信息查询、打分;个人信息查询、修改;密码修改等。
管理员功能:教师信息修改、删除;管理员信息修改、删除(有权限之分);课程信息添加、修改、删除;学生学籍信息查询、修改、删除(有权限之分);留言查看、删除(有权限之分)等。
2 系统中主要用到的技术
2.1 MySQL数据库
MySQL是一个遵循GPL的开源软件、在Linux平台底下它是LAMP(LAMP代表了Linux平台上的Apache网站服务器;MySQL数据库以及Perl、Python或者PHP编程语言的结合)组合重要组成部分,同时它提供的C API可以结合Glade/GTK+,代替Windows平台的VB+ACCESS/MS SQL SERVER组合。
MySQL数据库具有以下特性:
 使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
 为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
 支持多线程,充分利用CPU资源。
 采用优化的SQL查询算法可以有效地提高查询速度。
 既能够作为一个单独的应用程序应用在客户端/服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。
 提供TCP/IP、ODBC和JDBC等多种数据库连接途径 。
 提供用于管理、检查、优化数据库操作的管理工具。
 可以处理拥有上千万条记录的大型数据库。
2.2 Flex
Adobe Flex是支持RIA(Rich Internet Applications)开发和部署一系列发展中的技术和产品线的概括词,主要包括the Flex Framework,Flex Builder 2,Flex Enterprise Services 2等。FLEX试图通过提供一个程序员们已经熟知的工作流和编程模型,让程序员比从前更快更简单地开发动画及RIA应用。在多层式开发模型中,FLEX应用属于表现层,FLEX的语言和文件结构也试图把应用程序的逻辑从设计中分离出来。
Adobe Flex所包含的产品和相关软件如下所述:
 Flex Framework包括MXML,类库,组件,容器和效果(effects)等,它不需另外的服务器或IDE就可以生成和美化FLEX应用程序。
 Flex Builder 2是在Eclipse基础上创建的全新RIA IDE,是生成FLEX应用的最简单最强大的方式,实现了集成编译器、代码缩进、调试、设计视图、源代码控制系统集成等许多功能。它可以当作标准的独立应用软件,也可以当作Eclipse的插件使用。
 Flex Enterprise Services 2是Flex 1.5 server的下一代,拥有众多新功能,比如自动测试,企业通信支持(提供一种发布/订阅的通信架构),数据服务(使本地处理的数据和服务器端同步)等。
 Flex Charting 2提供平滑的数据可视能力,可看作是Flex Framework的扩展。
 Flex编译器,被包含于Flex Builder 2和Flex Enterprise Services,但可以在命令行方式下单独使用。
 ActionScript 3是Flex Framework的核心,更加面向对象化和类型化,全面兼容ECMA Script标准(Java Script 2.0的基础标准)。
 Flash Player,从8.5版本就开始加入AS3虚拟机,作为FLEX 2应用的运行时。
FLEX最初是作为一个J2EE(Java 2 Platform,Enterprise Edition)应用,或者可以说是JSP(Java Server Pages)标签库而发布的。它可以把运行中的MXML(FLEX标记语言)和 ActionScript编译成FLASH应用程序(即二进制的SWF文件)。相对于基于HTML的应用(如PHP,ASP,JSP等)在每个请求时都需要执行服务器端的模板,由于客户端只需要载入一次,FLEX应用程序的工作流被大大改善。
新版的Flex Builder 2基于Eclipse IDE,对于需要诸如data push和自动测试等高级功能的用户来说,企业级的服务仍然有效。Flex2引入了新版本的语言ActionScript 3的使用,这需要 Flash Player 9 以上版本作为运行时(runtime)。
2.3 Java
Java是由Sun公司于1995年5月推出的程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的Hot Java浏览器显示了Java的魅力,可实现跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java Applet;另一方面,Java技术也不断更新。
Java语言是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。
而Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface,简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。
3 教务管理系统的设计与实现
3.1 开发和运行环境选择
教务管理系统主要用于学校内部资源管理(如学生在线选课、成绩查看、学籍查看等),充分利用现代高度信息化手段来接受学生信息的咨询和反馈,形成目前学校内部受欢迎的教务产品,同时也方便了教务管理人员的管理工作,也方便了学生对自己个人信息的实时了解。
1、开发工具的选择
用Tomcat作Web服务器,利用My Eclipse设计代码,使用MySQL建立数据库。
2、运行环境要求
 中央处理器:Inter Pentium 4 2.67GHz或更高性能的CPU(推荐使用P4 3.0GHz以上)。
 操作系统:Microsoft Windows XP /Vista,或Windows2003(或更高)。
 物理内存:512MB(推荐使用1G以上)。
 硬盘空间:至少需要2G硬盘空间。
 光驱。
 VGA监视器。
 鼠标或其他定位装置。
 网络支持:任何与Windows 98/NT/2000/Me兼容的网络。
3.2 系统设计
3.2.1 系统功能分析
教务管理系统主要具有以下功能要求:
 学生功能:个人信息查询、修改;在线选课,密码修改;留言、查看留言等。
 教师功能:教学实施计划查询;选课信息查询、打分;个人信息查询、修改;密码修改等。
 管理员功能:教师信息修改、删除;管理员信息修改、删除(有权限之分);课程信息添加、修改、删除;学生学籍查询、修改、删除(有权限之分);留言查看、删除(有权限之分)等。
3.2.2 系统功能模块设计
根据系统功能要求分析,可以将系统分解成以下几个功能模块来设计,如图3.1所示。
图3.1 系统功能模块图
3.3 数据库设计
数据库是信息管理系统的基础,数据库的结构直接关系到各种功能的实现和程序运行的效率。
3.3.1 数据库概念结构设计
数据库概要结构设计图如图3.2所示。
图3.2 数据库结构设计图
3.3.2 数据库逻辑结构设计
根据数据库结构设计图,可知在数据库中需建立8张表。本系统创建的数据库为education,该数据库由学生信息表单(stuinfo)、教师信息表单(teachinfo)、管理员表单(manainfo)、教学实施计划表单(teachingplan)、教学班表单(teachclassinfo)、留言板表单(leavewordinfo)、课程信息表单(courseinfo)、选课信息表单(selectcourseinfo)组成,在设计中所用到的关系表及其结构分别如下所示。
1、学生信息表单(stuinfo),如表3.1所示。
表3.1 学生信息表单
列值 数据类型 数据长度 可否为空 描 述 主键
stu_id varchar 30 否 学号
name varchar 10 否 姓名
password varchar 30 否 密码
sex varchar 2 否 性别
speciality varchar 30 否 专业
academe varchar 30 否 学院
grade varchar 30 否 年级
overcourse varchar 30 否 已学课程
achievement varchar 30 否 成绩
status varchar 30 否 学籍状态
2、教师信息表单(teachinfo),如表3.2所示。
表3.2 教师信息表单
列值 数据类型 数据长度 可否为空 描 述 主键
teach_id varchar 30 否 教师工号
name varchar 30 否 姓名
password varchar 30 否 密码
speciality varchar 30 否 所在专业
post varchar 30 否 职称
teachcourse varchar 30 否 所授课程
3、管理员表单(manainfo),如表3.3所示。
表3.3 管理员表单
列值 数据类型 数据长度 可否为空 描 述 主键
mana_id varchar 30 否 编号
username varchar 30 否 管理员名
password varchar 30 否 密码
popedom varchar 30 否 权限
4、教学实施计划表单(teachingplan),如表3.4所示。
表3.4 教学实施计划表单
列值 数据类型 数据长度 可否为空 描 述 主键
id int 11 否 编号 是
course_name varchar 30 否 课程名
course_kind varchar 30 否 课程性质
begin_term varchar 30 否 开课学期
begin_speciality varchar 30 否 开课专业
period varchar 30 否 学时
5、教学班表单(teachclassinfo),如表3.5所示。
表3.5 教学班表单
列值 数据类型 数据长度 可否为空 描 述 主键
id int 11 否 编号 是
specility varchar 30 否 专业
grade varchar 30 否 年级
stu_num varchar 30 否 学生人数
course_name varchar 30 否 课程名
6、留言板表单(leavewordinfo),如表3.6所示。
表3.6 留言板表单
列值 数据类型 数据长度 可否为空 描 述 主键
leave_id int 11 否 留言编号 是
leave_date date 0 否 留言日期
leave_name varchar 30 否 留言人姓名
leave_content varchar 2000 否 留言内容
7、课程信息表单(courseinfo),如表3.7所示。
表3.7 课程信息表单
列值 数据类型 数据长度 可否为空 描 述 主键
course_id varchar 30 否 课程编号 是
course_name varchar 30 否 课程名称
8、选课信息表单(selectcourseinfo),如表3.8所示。
表3.8 选课信息表单
列值 数据类型 数据长度 可否为空 描 述 主键
course_id varchar 30 否 课程号
stu_id varchar 30 否 选修学生学号
teacher varchar 30 否 授课教师
achievement varchar 30 否 成绩
4 模块详细设计
4.1 主页面
此教务管理系统的用户有三种身份,即学生、教师和系统管理员, 如果是系统管理员,登录后进入的主页面如图4.1所示:
图4.1 系统管理员主页面
此界面中包含五个功能模块,即管理教师、管理员管理、课程信息管理、学生学籍管理、留言维护。系统管理员在此页面中可对教师、管理员及学生等信息进行浏览、修改、删除、添加等操作。
如果是登录用户是学生,登录后进入的主页面如图4.2所示。
图4.2 学生主页面
此页面包含六个功能模块,即选课、个人信息查询、个人信息修改、密码修改、历史留言查询、留言,学生可以在此页面中对其个人信息分别进行浏览、修改等操作。
如果是登录用户是教师,登录后进入的主页面如图4.3所示:
图4.3 教师管理主页面
此页面包含五个功能模块,即教学实施计划查询、选课信息查询和打分、个人信息查询、个人信息修改、密码修改,教师可在此页面中对相关信息进行浏览、修改等操作。
4.2 用户登录页面
此页面的主要功能是对使用本系统的用户进行用户名、密码、用户身份的验证,只有合法的用户才能使用本系统。对于初次使用本系统的用户,首先必须是在此学校有学籍,而且教务人员已经将学生、教师、管理员信息写入数据库之后才能访问登录用户界面,此系统不支持陌生人注册。在登录界面中设置了身份列表下拉框,方便用户进行身份选择、登录。用户填写的所有信息通过Flex与Java的远程调用,通过send()方法将获取的text文本提交到Java端,并与数据库中的相应信息进行比较做出判断。
登录界面如图4.4所示。
图4.4 用户登录界面
用户登录界面的主要实现代码如下:

width=949 height=565 verticalAlign=bottom horizontalAlign=right
xmlns:ns1=com.education.views.*>

[Event(name=loginevent,type=com.education.events.LoginEvent)]
[Event(name=studentloginevent,type=com.education.events.StudentLoginEvent)]
[Event(name=teacherloginevent,type=com.education.events.TeacherLoginEvent)]





fault=processFault(event)>


{username.text}


{password.text}


{types.text}


















4.3 学生功能模块设计
学生功能模块主要包括个人信息查询、修改,在线选课,密码修改,留言、查看留言。学生选课,修满学时之后,由授课教师打分,然后学生再次查询信息时则可查询到分数。
4.3.1 个人信息查询页面
个人信息查询页面如图4.5所示,当前登录的学生可在此页面中查看自己的基本信息。
图4.5 个人信息查询页面
在个人信息查询页面中,通过studetLO.getTheStudent.send()方法来操作数据库,把数据库中的内容用datagrid显示出来。首先,将进行查询、修改、删除、增加等操作需要与数据库连接的代码单独封装为一个类,具体代码如下所示:
package com.education;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.rowset.CachedRowSet;
import com.sun.rowset.CachedRowSetImpl;
public class DBTools {
String driver = com.mysql.jdbc.Driver;
String url = jdbc:mysql://127.0.0.1:3306/education;
String user = root;
String password = 123456;
Connection con = null;
ResultSet rs = null;
public DBTools() {
try {
Class.forName(driver);
con = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
}
public ResultSet select(String sql) {
Statement st = null;
CachedRowSet crs = null;
try {
st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
crs = new CachedRowSetImpl();
crs.populate(rs);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return crs;
}
public int update(String sql) {// 此方法int与boolean类型都可以
Statement st = null;
int var = 0;
try {
st = con.createStatement();
int i = st.executeUpdate(sql);
if (i == 1) {
var = 1;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return var;
}
}
其中使用的数据库操作语句为:
public List getTheStudent(String stu_id) {
List list = new ArrayList();
DBTools db = new DBTools();
String sql = select * from stuinfo where stu_id= + stu_id + ;
ResultSet rs = db.select(sql);
Student student = null;
try {
while (rs.next()) {
student = new Student();
student.setAcademe(rs.getString(academe));
student.setAchievement(rs.getString(achievement));
student.setGrade(rs.getString(grade));
student.setName(rs.getString(name));
student.setOvercourse(rs.getString(overcourse));
student.setPassword(rs.getString(password));
student.setSex(rs.getString(sex));
student.setSpeciality(rs.getString(speciality));
student.setStatus(rs.getString(status));
student.setStu_id(rs.getString(stu_id));
list.add(student);} } }
4.3.2 个人信息修改页面
个人信息修改页面如图4.6所示,在该页面中学生可对自己的个人信息进行修改。
图4.6 个人信息修改页面
每个Text文本框中的信息是通过传递stu_id,通过stu_id在数据库中查询出相应的值,然后显示在此页面上,方便用户对比进行修改,修改信息的主要代码如下所示:
public boolean modifystudentinfo(String stu_id, String name, String sex,
String speciality, String academe, String grade) {
boolean flag = false;
String sql = update stuinfo set name= + name + ,sex= + sex
+ ,speciality= + speciality + ,academe= + academe
+ ,grade= + grade + where stu_id= + stu_id + ;
if (sex.equals(男) || sex.equals(女)) {
DBTools tool = new DBTools();
int rs = tool.update(sql);
if (rs == 1) {
flag = true; }
}
return flag;
}
fault=processFault(event)>


{stu_id.text}


{studentname.text}


{sex.text}


{speciality.text}


{academe.text}


{grade.text}



4.3.3 在线选课页面
学生在线选课页面如图4.7所示,在此页面中学生可根据教务安排的选修课情况对自己感兴趣的课程进行选择,但是课程一经选定不允许退选。
图4.7 在线选课页面
实现该页面的功能代码如下所示:
public List SelectCourse() {
List list = new ArrayList();
DBTools db = new DBTools();
String sql = select * from teachingplan where course_kind=2;
ResultSet rs = db.select(sql);
TeachPlan teachplan = null;
try {
while (rs.next()) {
teachplan = new TeachPlan();
teachplan.setId(rs.getInt(id));
teachplan.setCourse_name(rs.getString(course_name));
teachplan.setCourse_kind(rs.getString(course_kind));
teachplan.setBegin_term(rs.getString(begin_term));
teachplan.setBegin_speciality(rs.getString(begin_speciality));
teachplan.setPeriod(rs.getString(period));
list.add(teachplan);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
public boolean addcourses(String stu_id, String overcourse) {
boolean flag = false;
boolean b = checkcourse(stu_id,overcourse);
DBTools tool = new DBTools();
if (b) {
addcoursetoselect(stu_id,overcourse);
List list = getTheStudent(stu_id);
String name = list.get(0).getName();
String password = list.get(0).getPassword();
String sex = list.get(0).getSex();
String speciality = list.get(0).getSpeciality();
String academe = list.get(0).getAcademe();
String grade = list.get(0).getGrade();
String status = list.get(0).getStatus();
String sql= insert into stuinfo values( + stu_id + , + name
+ , + password + , + sex + , + speciality
+ , + academe + , + grade + , + overcourse
+ ,0, + status + );
int rs = tool.update(sql);
if (rs == 1) {
flag = true;
}
}
return flag;
}
public boolean checkcourse(String stu_id, String overcourse){
boolean flag=false;
String sql = select overcourse from education.stuinfo where stu_id= + stu_id+ ;
DBTools db = new DBTools();
ResultSet rs = db.select(sql);
try {
outer:while(rs.next()){
String str = rs.getString(overcourse);
if(str.equals(overcourse)){
flag = false;
break outer;
}else{flag=true;}
}
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
public boolean addcoursetoselect(String stu_id, String course_name){
boolean flag=false;
DBTools db = new DBTools();
String str2=ads(stu_id,course_name);
System.out.println(str2);
String sql= insert into selectcourseinfo values( + course_name + , + stu_id+ , + str2 + ,0);
int rs = db.update(sql);
if (rs == 1) {
flag = true;
}
return flag;
}
public String ads(String stu_id, String teachcourse){
String str=null;
String sql1=select teach_id from teachinfo where teachcourse= + teachcourse+ ;
DBTools db=new DBTools();
ResultSet rs = db.select(sql1);
try {
while(rs.next()){
str = rs.getString(teach_id);
}
} catch (SQLException e) {
e.printStackTrace();
}
return str;
}
fault=processFault(event)>


{user_name}


{selectdg.selectedItem.course_name}



4.3.4 密码修改页面
学生密码修改页面如图4.8所示,在此页面中已经登录系统的学生用户可以对自己的登录密码进行修改。
图4.8 密码修改页面
4.3.5 历史留言查询页面
历史留言查询页面如图4.9所示,在此页面中当前登录学生用户可查看其已经发表过的历史留言。
图4.9 历史留言查询页面
该页面的实现代码如下所示:
private function wordOperator(event:MouseEvent):void
{
if(event.target is Button)
{
if(event.target.label==查看)
{
var look_words:look_word=
look_word(PopUpManager.createPopUp(this,look_word,true));
pointer1.x=0;
pointer1.y=0;
pointer1=check.localToGlobal(pointer1);
look_words.x=pointer1.x+25;
look_words.y=pointer1.y+25;
var word:Word=new Word();
word.leave_id=worddg.selectedItem.leave_id;
word.leave_date=worddg.selectedItem.leave_date;
word.leave_name=worddg.selectedItem.leave_name;
word.leave_content=worddg.selectedItem.leave_content;
var look_wordevent:Look_WordEvent=new Look_WordEvent(word);
this.dispatchEvent(look_wordevent);
} } }
4.3.6 留言板页面
留言板页面如图4.10所示,已登录用户可通过此页面在管理系统系统中发表留言。
图4.10 留言页面
学生进入此页面后,可以对教学或者系统完善性提出意见或者指出错误。管理员通过登录,可以查看到学生的留言,针对学生的意见可以对系统进行维护。
4.4 教师功能模块设计
教师功能模块主要包括教学实施计划查询,选课信息查询、打分,个人信息查询、修改,密码修改。
4.4.1 教学实施计划查询页面
教学实施计划查询页面如图4.11所示,教师进入此页面后,可以查看到各课程的教学安排情况。教师通过按要求查询,可以查询到与自己教学有关的相关教学信息。
图4.11 教学实施计划查询页面
4.4.2 选课信息查询页面
选课信息查询页面如图4.12所示。教师进入此页面之后,可以查看到已经选修了自己所授课程的学生,点击打分”按钮,可以对选了此课程的学生的成绩进行修改或者打分。
图4.12 选课信息页面
4.4.3 个人信息查询修改页面
个人信息修改查询页面如图4.13所示,教师进入此页面后,可以查看到自己的基本信息(包括教师工号、姓名、职称等)。还可以对其中一些信息进行修改。
图4.13 个人信息查询修改页面
4.4.4 密码修改页面
密码修改页面如图4.14所示,教师进入此页面后,可以输入新密码,更改登录时使用的密码。
图4.14 密码修改页面
4.5 管理员功能模块设计
管理员功能模块包括教师信息修改、删除,管理员信息修改、删除(有权限之分),课程信息添加、修改、删除,学生学籍查询、修改、删除(有权限之分),留言查看、删除(有权限之分)。
4.5.1 教师信息修改、删除页面
教师信息修改、删除页面如图4.15所示:
图4.15 教师信息修改、删除页面
进入此页面后,管理员可以查看或者修改现有教师的基本信息。当点击删除”时,如果此管理员权限为1,则不能进行删除,显示权限不够,如图4.16所示。
图4.16 删除时权限不够页面
4.5.2 管理员信息修改、删除页面
管理员信息修改、删除页面如图4.17所示,管理员可在此页面中查看或者修改现有系统管理员的基本信息。当点击删除”时,如果此管理员权限为1,则不能进行删除,显示权限不够。
图4.17 管理员信息修改、删除页面
4.5.3 课程信息添加、修改、删除页面
课程信息添加、修改、删除页面如图4.18所示,系统管理员可在此页面中添加新的课程信息,或者修改和删除已存在的课程信息。
图4.18 课程信息添加、修改、删除页面
基本实现代码如下所示:
fault=processFault(event)>


{check.text}


{combo1.text}



fault=processFault(event)>


{teachdg.selectedItem.teach_id}


{user_name}



fault=processFault(event)>


{studg.selectedItem.stu_id}


{user_name}



4.5.4 学生学籍查询、修改、删除页面
学生学籍查询、修改、删除页面如图4.19所示,系统管理员可以在此页面中查看或者修改现有在校学生的基本信息。当点击删除”时,如果此管理员权限为1,则不能进行删除,显示权限不够。
图4.19 学生学籍查询、修改、删除页面
4.5.5 留言查看、删除页面
留言查看、删除页面如图4.20所示,管理员进入此页面后,可以查看所有学生的留言信息,但是在做删除操作时有权限限制,只有当管理员权限为1时才能对学生发表的留言进行删除,否则显示权限不够。
图4.20 留言查看、删除页面
5 用户手册
5.1 系统功能简介
此教务管理系统主要由学生功能、教师功能、管理员功能三大模块组成。
1、学生功能:
本模块具有五项功能:主要用户学生查询自己的学籍信息,也可以在线选课,可以修改个人的部分信息,修改登录时的密码等。
2、教师功能:
本模块具有四项功能:通过学生选课,学生修完学时之后,老师就应该给学生所选课程打分,所以在此,添加了选课信息”模块,用于老师给学生打分;除了教师给学生打分外,教师可以修改个人部分信息,修改登录时密码,可以查询教学实施计划等。
3、管理员功能:
本模块具有五项功能:管理员有权限之分,权限为0的管理员为超级管理员,对系统的所有操作都可以实现,而权限为1的管理员,除了删除信息及修改管理员的权限不能实现外,其他操作都可以实现;管理员可以管理学生学籍、管理教师、管理课程、管理留言等。
5.2 系统运行与操作指南
本系统可直接是基于B/S模式的,所以直接通过IE浏览器就可以运行。
不同用户在登录本系统时需要选择用户类型、输入用户名和密码,若通过了系统数据库的验证,便可以进入符合身份的用户界面进行用户操作。本系统有三种用户类型即学生、教师和系统管理员。根据不同的身份,他们所能执行的操作都有所不同。
如果是学生,登录后可以进入学生主页面进行选课,个人信息查询等操作。
如果是教师,登录后可以进入教师主页面进行课程打分,个人信息查询等操作。
如果是系统管理员,登录后则可以进入系统完整的页面,可以对学生学籍、教师信息、留言信息、课程等进行添加、修改、删除等操作。
6 总结与展望
6.1 系统总结及不足之处
本系统具有以下优点:
1、由于系统采用Flex这一先进平台作为开发平台,使得界面绚丽度和功能可操作性提高到了前所未有的高度,使本系统的构建思想更为可行。整个系统基于先进的Flex环境和Java环境而开发,使应用程序的发布更为容易,使系统具有更好的移植性,为日后系统升级奠定了良好的基础。
2、本系统可以运行在多种操作系统平台上(Windows NT/Windows 2000/Windows XP/Windows Vista),数据库管理系统采用MySQL,功能强大的Flex配合可移植性好的Java开发环境。
3、系统将用户权限进行划分,分为学生、教师和系统管理员,权限为0的管理员使用系统的全部功能,可以进行信息更改、维护等操作,他是最高层系统管理员;权限为1的管理员只能使用系统的部分功能,可以进行信息的更改;学生和教师只能进行基本信息的浏览和基本操作。这样既方便了用户,又保证了系统的安全性。
4、整个系统运行后,显示在浏览器上的部分,除了文本框文字可以复制、修改等操作以外,其他区域一律不能对文字进行复制等操作。整个程序在编译之后,显示在浏览器上的部分全部是后缀名为swf的文件,安全性高;而且整个系统在运行时,只会在地址栏看到一个页面名:index.html。
5、系统界面简单易操作,输入信息方便,方面人们使用。
但是也存在以下不足之处:
1、界面跳转复杂,不能对界面进行刷新,这一点有待改进。
2、功能比较简单,部分选课过程等没有进一步改善、加强,不能更好的为用户服务。
3、数据库设计有冗余,需要进一步优化。
6.2 设计心得
毕业设计的选题是在指导老师的建议下于上学期末确立的,选题确定后就找过这方面的资料开始学习,一开始对这方面可以说是不熟悉,虽然原来学过JSP技术,但由于当时不认真,了解的东西还是很少,在校学习过程中只能说对于JSP的运行原理和机制已经有了一个整体的认识。后来通过培训,学习了更多的知识,学习到了最新的Flex技术。学习过程中,Flex的界面绚丽度和操作的简单、方便让我下定决心选用Flex技术完成毕业设计。由于Flex需要远程调用数据库,所以又选择可一致性好的Java语言来配合开发。
本次毕业设计已经基本顺利结束,在整个设计过程中,劳动与汗水凝结了这次设计。解决设计的一个问题,就会有新的感受和新的收获。学习是一个长期的过程,在设计系统过程中,遇到了许多问题,后来通过自己的努力,解决了大部分问题,也学到了许多知识。通过这次毕业设计,我学到了很多,从最初的Java语言,后来到Web开发,再后来在培训过程中学到的ssh,再后来学到Flex,最后到将软件功能的思想融合与整个设计过程中,将平时所学的知识运用于实际开发实践中。
在这个系统的实现过程中也经常遇到一些困难,毕竟对于Flex这一新技术掌握的不熟练,有很多控件不能真正了解他们的含义,还有一些对象调用的方法,也都不是很了解,界面的美化也处理不够好。所以开始设计时,真的遇到了很多困难,不过通过同学和老师的帮助以及上网学习,解决了设计上的不少问题,也使我对Flex技术有了一定的掌握,同时巩固了以前所学的知识。实现了质的跨越,从纯粹的理论学习到后来的实践再到毕业设计的完成,是理论联系到实践,是认识的第二次飞跃。
总而言之,这次毕业设计使我学到了很多在大学课堂上学不到东西,不光是专业知识有所提高,还锻炼了我的意志,使我更加坚强。要走软件开发这条路,就必须要不断学习新知识,不断增强自己与别人竞争的实力,还需要有不怕吃苦的精神,因为软件开发这条路对开发人员的身体来说,是一个考验。
致 谢
通过这次毕业设计,我获益匪浅。首先,需要感谢大学四年来,一直帮助我的各位老师,因为他们对我的信任和帮助,我才能学到那么多的软件开发语言和环境。在这次毕业设计过程中,得到了周凤丽老师和其他老师的精心指导,在此表示衷心的感谢!要特别感谢指导我毕业设计的周凤丽老师,在我有特殊情况时能及时帮助我,使我的毕业设计和论文得以顺利完成。
参考文献
1. 杨博,杜昱宏 (​http:​/​​/​www.china-pub.com​/​s​/​?key1=%d1%ee%b2%a9%3b%b6%c5%ea%c5%ba%ea&zyandor=and _blank​)译. Adobe Flex 3: Training from the Source. (​http:​/​​/​www.amazon.com​/​Adobe-Flex-3-Training-Source​/​dp​/​0321529189​/​ref=sr_1_1?ie=UTF8&s=books&qid=1236304431&sr=1-1 _blank​) 人民邮电出版社, 2009年3 月
2. 郝刚 (​javascript:open_window(%22http:​/​​/​opac.lib.whu.edu.cn:80​/​F​/​6NKI5HS17CTXBAHXYPTNPN25QH9BQ33JI8TEIT2U58BLF9VRH7-66386?func=service&doc_number=000640321&line_number=0015&service_type=TAG%22);​). Flex 3.0入门指南. 北京电子工业出版社, 2009
3. 孙晗波 (​javascript:open_window(%22http:​/​​/​opac.lib.whu.edu.cn:80​/​F​/​6NKI5HS17CTXBAHXYPTNPN25QH9BQ33JI8TEIT2U58BLF9VRH7-76659?func=service&doc_number=000640384&line_number=0016&service_type=TAG%22);​). Adobe Flex 3程序设计指南. 北京电子工业出版社, 2009
4. 黄梯云.《管理信息系统导论》. 机械工业出版社, 2007
5. 张骥 (​javascript:open_window(%22http:​/​​/​opac.lib.whu.edu.cn:80​/​F​/​6NKI5HS17CTXBAHXYPTNPN25QH9BQ33JI8TEIT2U58BLF9VRH7-82802?func=service&doc_number=000586991&line_number=0025&service_type=TAG%22);​),涂颖芳 (​javascript:open_window(%22http:​/​​/​opac.lib.whu.edu.cn:80​/​F​/​6NKI5HS17CTXBAHXYPTNPN25QH9BQ33JI8TEIT2U58BLF9VRH7-82803?func=service&doc_number=000586991&line_number=0026&service_type=TAG%22);​). Flex程序设计. 人民邮电出版社, 2008
6. 杨正甫. 面向对象分析与设计. 中国铁道出版社, 2003
7. 萨师煊,王珊. 数据库系统概论. 高等教育出版社, 2002
8. 王睿 (​javascript:open_window(%22http:​/​​/​opac.lib.whu.edu.cn:80​/​F​/​6NKI5HS17CTXBAHXYPTNPN25QH9BQ33JI8TEIT2U58BLF9VRH7-91465?func=service&doc_number=000584490&line_number=0024&service_type=TAG%22);​). Flex与ActionScript编程 (​javascript:open_window(%22http:​/​​/​opac.lib.whu.edu.cn:80​/​F​/​6NKI5HS17CTXBAHXYPTNPN25QH9BQ33JI8TEIT2U58BLF9VRH7-91457?func=service&doc_number=000584490&line_number=0014&service_type=TAG%22);​). 机械工业出版社, 2008
9. Robert Cecil Martin . UML for Java Programmers. USA, 2002
10. 张海蕃. 软件工程导论. 清华大学出版社, 2003
11. 林剑,王宇译. JAVA实例技术手册(第三版). 中国电力出版社, 2005年6月
12.郑可奇 (​javascript:open_window(%22http:​/​​/​opac.lib.whu.edu.cn:80​/​F​/​3M8SKIS751JFRI9F1FS7KU53GRHEE2JAILJNGDHNI8322AYSTM-47048?func=service&doc_number=000640386&line_number=0016&service_type=TAG%22);​). MySQL实用教程 (​javascript:open_window(%22http:​/​​/​opac.lib.whu.edu.cn:80​/​F​/​3M8SKIS751JFRI9F1FS7KU53GRHEE2JAILJNGDHNI8322AYSTM-47044?func=service&doc_number=000640386&line_number=0008&service_type=TAG%22);​). 电子工业出版社, 2009
13.唐汉明 (​javascript:open_window(%22http:​/​​/​opac.lib.whu.edu.cn:80​/​F​/​3M8SKIS751JFRI9F1FS7KU53GRHEE2JAILJNGDHNI8322AYSTM-52291?func=service&doc_number=000584530&line_number=0021&service_type=TAG%22);​). 深入浅出MySQL数据库开发、优化与管理维护 (​javascript:open_window(%22http:​/​​/​opac.lib.whu.edu.cn:80​/​F​/​3M8SKIS751JFRI9F1FS7KU53GRHEE2JAILJNGDHNI8322AYSTM-52285?func=service&doc_number=000584530&line_number=0013&service_type=TAG%22);​). 人民邮电出版社, 2008
14. 阿特金森 (​javascript:open_window(%22http:​/​​/​opac.lib.whu.edu.cn:80​/​F​/​3M8SKIS751JFRI9F1FS7KU53GRHEE2JAILJNGDHNI8322AYSTM-57730?func=service&doc_number=000401861&line_number=0025&service_type=TAG%22);​),周靖 (​javascript:open_window(%22http:​/​​/​opac.lib.whu.edu.cn:80​/​F​/​3M8SKIS751JFRI9F1FS7KU53GRHEE2JAILJNGDHNI8322AYSTM-57731?func=service&doc_number=000401861&line_number=0026&service_type=TAG%22);​),许青松 (​javascript:open_window(%22http:​/​​/​opac.lib.whu.edu.cn:80​/​F​/​3M8SKIS751JFRI9F1FS7KU53GRHEE2JAILJNGDHNI8322AYSTM-57732?func=service&doc_number=000401861&line_number=0027&service_type=TAG%22);​). MySQL核心编程:高级开发者指南. 清华大学出版社, 2003
15. 邱彦林 (​javascript:open_window(%22http:​/​​/​opac.lib.whu.edu.cn:80​/​F​/​4N8CC5BKCMD832SQBTTDQLT4Y8YB8LQXBHYTVCA8YSY1Y5J1SB-44597?func=service&doc_number=000570861&line_number=0020&service_type=TAG%22);​). Flex第一步:基于ActionScript 3.0的Flex 2应用开发. 清华大学出版社, 2007
16.Paul Milbourne, Chris Kaplan, Michael Oliver, Serge Jespers. The Essential Guide to Flash CS4 with ActionScript. friends of ED, 2009
17.Alaric Cole. Learning Flex 3: Getting up to Speed with Rich Internet Applications. OReilly, 2008
18.Katherine Ulrich. Flash CS4 Professional for Windows and Macintosh: Visual QuickStart Guide. Peachpit Press, 2008
附录1 外文参考文献(译文)
浅析Java的数据库访问技术
1. 引言
Java语言是一个支持网络计算的面向对象程序设计语言。Java语言吸收了Smalltalk语言和C++语言的优点,并增加了其它特性,如支持并发程序设计、网络通信和多媒体数据控制等。
2. JDBC
JDBC是一种可用于执行SQL语句的Java API,它由一些Java语言编写的类和界面组成。JDBC的体系结构由四个组件:应用程序、JDBC驱动程序管理器(JDBC Driver Manager)和数据源(Data Source)。JDBC API通过一个JDBC驱动程序管理器和为各种数据库定制的JDBC驱动程序,提供与不同数据库的透明连接。
JDBC API的作用就是 屏蔽不同的数据库间JDBC驱动程序之间的差别,使得程序设计人员由一个标准的、纯Java的数据库设计接口,为在Java种访问任意类型的数据库提供技术支持。JDBC驱动程序管理器为应用程序装载数据库驱动程序。JDBC驱动程序与具体的数据库相关,用于建立与数据源的连接,向数据库提交SQL请求。
目前比较常见的JDBC驱动程序分为一下四个种类:
2.1 JDBC-ODBC桥+ODBC驱动程序
JavaSoft桥产品利用ODBC驱动程序提供JDBC访问。
2.2 本地API
这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的调用。
2.3 JDBC网络纯Java驱动程序
这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。
2.4 本地协议纯Java驱动程序
这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。这将允许从客户机及其上直接调用DBMS服务器,是Intranet访问的一个很实用的解决办法。
对于以上四类驱动程序的选择,需要考虑构建应用程序的实际需要。一般而言,我们建议不要适用桥驱动程序,即第(1)(2)类驱动程序,它们主要是作为纯Java驱动程序还没有上市之前的过渡方案来适用,效率相对地下,程序的可移植性差。第(3)(4)类驱动程序是从JDBC访问数据库的首选方法,它们不但使程序的可移植性提高,达到跨平台的目的,还省去了在客户端安装驱动程序的麻烦。第(3)类驱动程序最大的优点在于对多数据库的支持,使最灵活的JDBC模式,广泛地应用与Internet/Intranet开发,性能十分突出。这种驱动程序支持多数据库以及分布式事物处理和集中管理,适用于大型的企业级应用。第(4)类驱动程序的优点在于与数据库本身结合紧密,性能很高。适用于小型企业级应用。
应用程序层中含4种重要的接口:
Java.sql.DriverManager处理驱动程序的装载和建立新的数据库链接。
Java.sql.Connection完成对某一指定数据库的链接。
Java.sql.Statement管理在指定数据库链接上的SQL语句的执行。
Java.sql.ResultSet从数据库返回的结果集。
3. 提高数据库访问效率的几种技术
3.1 数据库连接池技术
数据库连接池的基本思想就是为数据库连接建立一个缓冲池”。预先在缓冲池中放入一定数量的链接,当需要建立数据库连接时,只需从缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量、使用情况,为系统开发、测试及性能调整提供依据。
3.2 JavaBean技术
在实际应用程序中会遇到很多程序访问数据库的情况,如果数据库要修改,哪怕仅是密码,也要改动所有的程序,所以应当把链接数据库的操作放进一个程序中,再需要数据库链接时去调用这个文件就可以解决这个问题。一般的方法就是把数据库链接做成一个JavaBean来封装数据库操作。JavaBean技术是一种可以重复使用且跨平台的软件组件,可以使用JavaBean封装事物逻辑和客户端操作的分离,使系统具有更好的灵活性和适用性。因此,使用JavaBean提高了数据库的访问效率。
3.3 数据库批量更新机制
数据库批量更新的机制时通过一次调用将整批更新命令提交给数据库,之后数据库将一次处理所有的更新。这比将同组中的每一个更新逐一提交给数据库的性能要高很多,大大提高了对数据库的访问速度。
3.4 多线程及线程池技术
多线程技术主要解决处理器单元内多个县城执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。但如果对多线程应用不当,会增加对单个任务的处理时间。线程池技术正是关注如何缩短或调整时间的技术,从而提高服务器程序性能的。
当使用多个较短存活期的线程有利时,可以运用线程池急速,此技术节省了虚拟机为每项短期工作创建新进程的工作量。另外,它使得与线程的启动及消亡后的清理相关的开销最小。使用此激素和可以减少反应时间。在任务期限比较短时,线程池也是不错的方法。
附录2 外文参考文献(原文)
Analysis of Javas Database Access Technology
1. Introduction
Java language is a support network computing object-oriented programming language. Java language has absorbed Smalltalk language and C + + language of the advantages, and an increase of other features such as support for concurrent programming, network communications and control of multimedia data.
2. JDBC
JDBC is a SQL statement can be used for the implementation of the Java API, it is written by a number of Java class and interface components. JDBC architecture consists of four components: the application, JDBC driver manager (JDBC Driver Manager), and data sources (Data Source). JDBC API via a JDBC driver manager and for a variety of customized database JDBC driver to provide transparent connectivity of different databases.
JDBC API is the role of shielding between different database JDBC drivers the difference between, making programmers from a standard, pure Java database design interface, in Java of any type of database access to provide technical support. JDBC driver manager for database-driven application program loaded. JDBC driver associated with a specific database, and data sources used to establish connections, submit SQL requests to the database.
At present, the more common JDBC drivers are divided into about four categories:
2.1 JDBC-ODBC bridge + ODBC driver
JavaSoft products that use ODBC bridge provides JDBC access to drivers
2.2 Local API
This type of driver on the client API of the JDBC call is converted to Oracle, Sybase, Informix, DB2 and other DBMS call.
2.3 JDBC Network pure Java driver
This JDBC driver will convert the DBMS has nothing to do with the network protocol, such an agreement after a server has been converted to a DBMS protocol. This Web server middleware to its pure Java client to connect to a wide range of database. The agreement depends on the specific provider.
2.4 Local agreements pure Java driver
This type of JDBC driver will call directly into a DBMS network protocol used. This will allow the client and from a direct call on DBMS server, Intranet access is a very practical solution.
Driver for more than four choices, to build applications that need to take into account the actual needs. In general, we recommend that drivers do not apply to the bridge, that is, subsection (1) (2) class driver, which is mainly as a pure Java driver has not yet listed on the program prior to the application of the transition, the relative efficiency of the ground, the procedure can be transplanted poor. (3) (4) from the JDBC driver is the preferred method to access the database, they not only improve the portability procedures to achieve the purpose of cross-platform, but also eliminates the need to install the client driver trouble. Subsection (3) class driver is on the merits of the largest multi-database support, so that the most flexible JDBC model, widely used with the Internet / Intranet development, a very outstanding performance. This driver supports multi-database and distributed transaction processing and centralized management for large-scale enterprise applications. Subsection (4) driver the advantage of close integration with the database itself, a high performance. Applicable to small-scale enterprise applications.
Application layer containing four kinds of important interfaces:
Java.sql.DriverManager to deal with the driver loading and the establishment of a new database link.
Java.sql.Connection completion of a specified database link.
Java.sql.Statement management database in the designated link on the implementation of the SQL statement.
Java.sql.ResultSet returned from the database result set.
3. To improve the efficiency of database access in several technical
3.1 database connection pool technology
Database connection pooling basic idea is to establish a database connection pool. Add in the buffer pool in advance a certain number of links, when the need for a database connection, simply from the pool out of one, after using the add back. We can set the connection pool through the largest number of connections to prevent system and database connection endless. More importantly, we can manage the connection pooling mechanism to monitor the number of databases, use of the system development, test and provide a basis for performance tuning.
3.2 JavaBean technology
Application in practice will encounter many situations to access the database, if the database is to be amended, even if only a password, but also all of the procedural changes, so should be to link the operation of the database into a process, then the need for a database link to call the document to be the solution to this problem. General approach is to link the database to create a JavaBean package database operations. JavaBean technology is a re-use and cross-platform software components, you can use the JavaBean package things the client logic and the separation operation, the system has better flexibility and applicability. Therefore, the use of JavaBean to improve the efficiency of database access.
3.3 Database batch update mechanism
Database batch update mechanism will be through a call to update the entire batch of orders submitted to the database after the database will be the first to deal with all the updates. This group will work with every update to the database one by one to be much higher performance, greatly enhanced the speed of database access.
3.4 Multi-threaded and thread pool technology
Multi-threaded processor technology to solve a number of county unit implementation, it can significantly reduce the processor idle time units, an increase of the throughput capacity of the processor unit. However, if inappropriate for multi-threaded applications will increase the processing time for a single task. Thread pool technology is concerned about how to reduce or adjust the time of technology, thereby enhancing the performance of the server.
When using a number of shorter survival benefit of the thread, the thread pool can be used rapidly, the technology to save the virtual machine for each process to create a new short-term workload. In addition, it makes with the thread after the demise of start-up and clean-up costs related to the minimum. The use of this hormone and can reduce the response time. Comparison of the short-term mandate, the thread pool is also a good way.
教务管理系统
学生
管理员
个人信息查询、修改
教师
在线选课
密码修改
留言、留言查看
教学实施计划查询
选课信息查询、打分
个人信息查询、修改
密码修改
教师信息修改、删除
管理员信息修改、删除
课程信息添加
课程信息修改删除
学生学籍修改、删除

你可能感兴趣的:(基于JSP的教务管理系统设计)