1、学生学籍管理系统设计与实现摘 要学生学籍管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。本系统主要完成对学生学籍的管理,包括添加、修改、删除,查询,打印信息以用户管理等六个方面。系统可以完成对各类信息的浏览、查询、添加、删除、修改等功能。系统的核心是添加、修改和删除三者之间的联系,每一个表的修改都将联动的影响其它的表,当完成添加或删除操作时系统会自动地完成学生学籍的修改。查询功能也是系统的核心之一。此外,系统有完整的用户添加、删除
2、和密码修改功能,并具备报表打印功能。关键词 学生学籍管理;数据库;管理系统目 录摘要I目录II第1章 绪论1 1.1 系统设计的背景1 1.2 系统设计的目的和意义1第2章 需求分析2 2.1 用户需求2 2.2 使用范围2 2.3 可行性分析2 2.3.1经济上的可行性3 2.3.2技术上的可行性3 2.3.3运行上的可行性4 2.3.4用户使用上的可行性4 2.4 本章小结4第3章 概要设计5 3.1功能分析5 3.2 数据流图5 3.3 系统功能结构图6 3.4 E-R图6 3.5 本章小结7第4章 详细设计8 4.1 数据库详细设计8 4.1.1学生表8 4.1.2 班级表9 4.1.
3、3 课表9 4.2 登入模块的详细设计10 4.2.1 登入模块的成员变量10 4.1.2 登入模块的主要方法10 4.3 查询模块的详细设计11 4.3.1 查询模块的成员变量11 4.3.2 查询模块的主要方法11 4.4 修改模块的详细设计11 4.4.1 修改模块的成员变量11 4.4.2 修改模块的主要方法12 4.5 删除模块的详细设计12 4.5.1 删除模块的成员变量12 4.5.2 删除模块的主要方法12 4.6 本章小结13第5章 系统测试14 5.1 系统测试的目的14 5.2 功能测试14 5.2.1 登录功能测试14 5.2.2 添加功能测试15 5.2.3 删除功能
4、测试15 5.2.4 修改功能测试15 5.2.5 查询功能测试15 5.3 本章小结16结论17致谢18参考文献19第1章 绪论1.1 系统设计的背景随着计算机的普及和网络技术的发展,我国的教育行业信息化建设很早就已经开始在全国展开部署了。学生学籍管理系统就是其中之一。传统的手写管理由于工作量巨大、存放麻烦、更新困难、不易备份,已随着时代的发展而显的落伍了。这就要我们创造更快更新的管理系统。电子管理以快捷、方便的使用而受到欢迎1。学生学籍管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一
5、直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中作者将以开发学生学籍管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。1.2 系统设计的目的和意义 由于种种原因,现在学生学籍管理上存在着不及时、不准确的现象。如何对如此基础和重要的信息进行开发与利用,准确、及时地向有关使用者提供这些信息?借助计算机去解决这个问题,在国内外早已有着成熟的研究成果和广泛的社会应用。学生学籍管理正向着网络化、终端化发展。借助网络,
6、学生学籍可以及时、准确地查询到自己各学期、各门课程的成绩信息。教师可获得学生学籍成绩的基本数据。市场上众多的管理信息系统,大多包含学生学籍管理的功能。国内的众多高校甚至中小学,都得到了不同程度的使用。但是由于各个学校的实际情况不同,引进的软件往往不能直接投入使用,而必须经过二次开发2。而且从长远发展来看,根据本校的实际情况和发展目标开发自己的管理系统,不但可以直接和学院的管理制度接轨,不必被迫改变原有的管理体系,省去因此带来的麻烦,更重要的是便于以后系统的扩充。从而改变原有的学籍管理系统,使用计算机技术和融进现代的管理思想,把任课老师和学生学籍管理工作的老师从繁重的体力劳动中解脱出来。第2章
7、需求分析2.1 用户需求此系统专门为学校开发的学籍管理系统,用与教务处管理学生的学籍情况,并进行相应的调整,同时也可用于一些老师,学生通过系统查询一些学生资料,成绩等信息。系统主要用于管理学生信息,管理学生从进校开始,到毕业离校的一切学籍变动的管理,同时管理学生的资料和成绩。因此需要设置用户权限,分为一般用户和管理员,管理员是系统的管理人员,可以进行系统内的任何操作,查询,修改,删除,学生的学籍变动等操作。一般用户为访问系统用户,可以是老师,也可以是学生,但权限上受到控制,只可以查询一些资料,如学生的档案,学生的成绩等信息,而不能对这些信息进行修改,删除等操作,更不能对学生的学籍变动进行调整等
8、操作3。具体需求如下:1.普通用户:对学生资料的查询和对每学年,每学期各科成绩的查询。2.管理员:输入并维护学生的档案,成绩,对在校生的学籍变动进行管理,直到此学生顺利毕业。2.2 使用范围本系统适用于教育界,大学,中学的学生学籍的管理,它是比较完善的系统管理软件,可对学生进行学籍管理,成绩管理,对学生的学籍可以随时输入、输出、查找,调整,通过本系统软件,能帮助教研人员利用计算机,快速方便的对学生学籍管理进行管理、输入、输出、查找的所需操作,使散乱的人事管理能够具体化,直观化、合理化4。所以此软件使用范围广,开发的意图主要是为了教学办公室对学生学籍的管理更方便;减轻管理人员的工作负担,使学校的
9、学籍管理工作能够更加的完善。2.3 可行性分析计算机已经成为我们学习和工作的得力助手,今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要是因为计算机可以代替人工进行许多繁杂的劳动;计算机可以节省许多资源;计算机可以大大的提高人们的工作效率;计算机可以使敏感文档更加安全,等等。在各大中小学校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。现在我国的中小学校中档案的管理水平还停留在纸介质的基础上,这样
10、的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。作者作为一个计算机应用的本科生,希望可以在这方面有所贡献。作者希望能用四年的所学编制出一个实用的程序来帮助中小学进行更有效的学籍管理5。可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能够解决。只要资源和时间不加以限制,所有的项目都是可行的,然而,由于资源缺乏和交付时间限制的困扰,给基于计算机系统的开发带来了困难。 因此对软件项目的可行性做出细致而谨慎的评估是十分必要的。如果在定义阶段尽早发现将来可能在开发过程中遇到的问题,及早做出决定,可以避免大量的人工、金钱、
11、时间上的浪费。因此,作者在开发学生学籍管理系统之前,对本次开发的可行性进行了分析。2.3.1经济上的可行性现在,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开发,为学校的工作效率带来了一个质的飞跃,为此主要表现有以下4个方面:1.本系统的运行可以代替人工进行许多繁杂的劳动。2.本系统的运行可以节省许多资源。3.本系统的运行可以大大的提高学校的工作效率。4.本系统可以使敏感文档更加安全。另一方面,就学校自身来说,它也是需要这样一个软件的。我们在计算机还没有普及之前,信息都必须通过在纸上填写来实现,这样既浪费时间又容易出错。随着信息时代的来临我们的各项工作都要讲求效率成绩和学籍管理也
12、不例外,这就为作者的软件提供了使用群体。所以,本系统在经济上是可行的。2.3.2技术上的可行性目前,全国计算机越来越普及,几乎每个学校都配有计算机,为作者的这套软件提供了硬件环境。以计算机为基础的管理系统使教师和管理者摆脱了那种繁杂、易错的记录及管理方式,通过计算机以及配套的软件,用户可以采用全新的方式从不同的地方存取各种信息。从客户/服务器方式上发展起来的框架结构为我们提供了开发本系统的基础。为了本系统的开发作者特对学校进行了深入的调查研究。学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。使用Java作为系统开发的开发软件,它作为一种现代的编程语言,提供完善的指令控制语句、类
13、与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改6。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。2.3.3运行上的可行性本系统可以运行在Win95/Win98/Win2000操作系统之上,就是说市场上流行的操作系统都可以支持。另外,本系统为一个小型的学生学籍管理系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。2.3.4用户使用上的可行性本系统的操作简单,有计算机基础的人无需培训即可使
14、用,即使是没有计算机基础的人只需经过简单的培训就可以很熟练的使用本系统。系统运行后,就用户方而言,由于用户使用本系统时,不会也不必关心系统内部的结构及实现方法,即对用户来说是透明的,所以本系统对用户而言,是定位在界面友好、操作方便、功能齐全的原则上的,用户只需简单的用鼠标点击各界面上的选项卡或按钮就能执行相应的功能,就管理者而言,关心的是如何处理各种数据,只要把用户的信息输入计算机,管理者就可运行相应的后台程序进行处理。而以上的这些功能都能在所选择的开发环境中用所选择的开发工具来实现。所以说本系统在用户使用可行性上是没有问题的。因此,它在用户使用上是可行的7。2.4 本章小结本章主要对学籍管理
15、系统的需求做出了分析,包括用户的需求以及可行性的分析,通过分析,明确了系统的研究方向与目的,使得项目实施起来更加的准确、高效,确保了最后产品的准确性。第3章 概要设计3.1功能分析通过对学籍管理系统的概述,又通过对此系统的一些用户需求的分析我们可以归纳出,此系统应该具备以下的功能8:1.学籍与班级管理功能:此功能对学生进行管理,管理学生的注册,给学生编学号,班级,形成完成的学生学籍信息。2.成绩与课程管理: 在校生每个学期(从第一到第八,每年两个)的成绩的管理,能完成录入,查询,修改和删除。课程包括名称,学分和课程类型.3.查询管理:此功能主要对学生学籍和成绩信息进行检索,能完成随时查看详细信
16、息,查看学生的资料和此学生的在学校的所有成绩。 4.用户管理:此功能重要对系统的用户进行管理,能完成用户的添加,修改,删除,给用户分配权限(管理员和普通用户)。还包括密码修改.5.系统维护此功能重要对系统的数据库恢复和备份进行管理3.2 数据流图我们了解了系统的大致功能,建立出此系统的功能模型,下面通过对数据流程图的描述来说明这些数据在系统中的各种变化。学籍管理系统数据流程图如图3-1所示:图3-1 学籍信息数据流图3.3 系统功能结构图学生学籍管理系统是为了利用计算机实现一个学校的学生学籍管理工作。因此,系统应该有一个全局管理功能,以方便实现不同的功能的选择。也就是应具备全局管理功能。这里用
17、总控模块实现。由于要处理的信息包括基本数据管理、学生学籍成绩管理、系统维护等的不同处理,总控模块管理有三种不同的信息的处理。即学籍管理、学生学籍成绩管理、奖学金管理、系统维护管理。由于每种信息的处理涉及到对信息多方面的不同子功能,所以又涉及到对众多的子功能的管理。在此基础上,总结得到如下的系统功能结构图9,如图3-2所示:学生学籍管理系统 系统维护基本数据库管理查询管理用户管理数据库管理成绩统计学生学籍查询成绩查询学生学籍学生成绩系班班级课程图3-2系统功能模块结构图3.4 E-R图在了解了系统的各个模块之后,我们来对数据库的结构进行创建,根据模块中各个部分我们创建出一些数据结构,并建立这些数
18、据之间的关系,根据数据库需求分析的结果,接下来就可以确定并概括出程序中所包含的实体及实体之间的关系,作为后续的数据库逻辑结构设计的基础与指导10。得到上面的数据项和数据结构后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,这些实体包括各种具体信息,通过各种相互之间的作用形成数据的流动。本系统中根据上面的设计规划出的实体有:学生学籍管理、学生信息管理、考试管理、成绩管理、用户管理。E-R图如图3-3所示:18图3-3 E-R图3.5 本章小结本章主要对整个程序的的功能进行了分析与设计,画出了数据流图,结构功能图以及E-R图,并且对数据库进行了设计,确定了数据库里面表的设计,减轻了以
19、后的工作,而且是程序的后期工作更加条理。第4章 详细设计4.1 数据库详细设计4.1.1学生表数据库学生表由学号、姓名、性别、年龄、机关、身份证号、家庭住址、电话、所在班级组成,具体如表4-1所示:表4-1学生表班级classVarchar216学号studentnumberVarchar216姓名 nameVarchar216性别sexVarchar216年龄birthdayint籍贯nativeVarchar28身份证号IDVarchar216家庭住址homeadressVarchar232电话telVarchar232所在班级classnumberVarchar216创建命令如下:cre
20、ate table student ( class Varchar2(16) not null, studentnumber Varchar2(16) not null, name Varchar2(16) null, sex Varchar2(16) null, birthday int null, native Varchar2(8) null, ID Varchar2(16) null, homeadress Varchar2(32) null, tel Varchar2(32) null, classnumber Varchar2(16) null, constraint PK_stu
21、dent primary key nonclustered (class,student)4.1.2 班级表数据库班级表由班级、专业号、专业名、院系、班级人数组成,具体如表4-2所示:表4-2 班级表班级classVarchar216专业号C_idVarchar28专业名C_nameVarchar232院系yuanxiVarchar232班级人数classrenshuint创建命令如下:create table class ( class Varchar2(16) not null, C_id Varchar2(8) null, C_name Varchar2(32) null, yuanxi
22、 Varchar2(32) null, classrenshu int null, constraint PK_class primary key nonclustered (class)4.1.3 课表数据库课表由班级、课程号、课程名组成,具体如表4-3所示:表4-3 课表班级classvarchar216课程号ClassIDvarchar22课程名Classnamevarchar232创建命令如下:create table classtable ( class varchar2(16) not null, ClassID varchar2(2) not null, Classname va
23、rchar2(32) null, constraint PK_classtable primary key (class, classid)4.2 登入模块的详细设计4.2.1 登入模块的成员变量登入模块的成员变量如表4-4所示:表4-4登入模块的主要成员变量描述变量类型名称存放“学生”对象的散列表Hashtable基本信息表输入学生基本信息的文本条JtextField学号,姓名专业,年级,出生存放学生信息的对象Student学生4.1.2 登入模块的主要方法登入模块的主要方法如表4-5所示:表4-5登入模块的主要方法名称功能备注 StudentSituation创建学生信息登入界面构造方法A
24、ctionPerformed处理ActionEvent事件接口方法登入模块由两个标签:用户名、密码,两个文本输入框:用户名、密码,两个按钮:登陆、重置组。成点击“登陆”按钮,若用户名、密码不匹配,则系统提示错误重新填写。若正确,则进入主功能页面。系统登录的主要代码如下:protected void Button1_Click(object sender, EventArgs e) if (TextBox1.Text.Trim() = | TextBox2.Text.Trim() = ) Label1.Text = 请输入用户名或密码!; else if (TextBox1.Text.Trim(
25、) = admin & TextBox2.Text.Trim() = 123) Response.Redirect(主界面.aspx); 4.3 查询模块的详细设计4.3.1 查询模块的成员变量查询模块的成员变量如表4-6所示:表4-6查询模块的主要成员变量描述变量类型名称存放“学生”对象的散列表Hashtable基本信息表输入学生基本信息的文本条JtextField学号,姓名专业,年级,出生4.3.2 查询模块的主要方法查询模块的主要方法如表4-7所示:表4-7查询模块的主要方法名称功能备注 Inquest创建查询界面构造方法ActionPerformed处理ActionEvent事件接口方
26、法定义查询方法实现查询功能,首先使用equals方法进行判别学号输入区文本框中的内容是否为空,为空的时候则提示用回输入学号进行查询,不为空使用类BufferedReader下的readLine()方法进行读取文件text1.txt中的内容,使用类StringTokenizer对读取的整行数据以“|“进行分割,每个分割点的内容赋值给String类型的num,name,sex,grade,xibie。再次使用equal方法判断学号输入文本框中的内容是否和num相同,若相同则依次使用setText()方法将学籍信息显示区的文本框内容设置为所查找的文件数据。其中包括文件的异常处理。4.4 修改模块的详
27、细设计4.4.1 修改模块的成员变量修改模块的成员变量如表4-8所示:表4-8修改模块的主要成员变量描述变量类型名称存放“学生”对象的散列表Hashtable基本信息表输入学生基本信息的文本条JtextField学号,姓名专业,年级,出生4.4.2 修改模块的主要方法修改模块的主要方法如表4-9所示:表4-9修改模块的主要方法名称功能备注 ModifySituation创建修改界面构造方法ActionPerformed处理ActionEvent事件接口方法修改学籍信息和删除功能实现方法类似,只是在修改的具体过程有些差异,修改学籍信息时需要用户输入完整的学籍信息,点击修改按钮,系统弹出对话框提示
28、是否要删除学生学籍信息,点击是(Y)进行修改学籍信息,首先也是对文本文件的读取和信息匹配检测,以学号为标识进行匹配检测。若学号相同,使用readLine()方法自动查找到该学籍信息在文本文件中所在的行,将该行之前的内容使用append()方法追加到缓冲流buf,而该行数据则设置为从文本框中获取的内容追加至buf中,该行之后的内容则正常追加至buf中,然后再写入文本文件text1.txt中,其中也包括对文件读取写入的异常的处理,从而实现了信息的修改。4.5 删除模块的详细设计4.5.1 删除模块的成员变量删除模块的成员变量如表4-10所示:表4-10删除模块的主要成员变量描述变量类型名称存放“学
29、生”对象的散列表Hashtable基本信息表输入学生基本信息的文本条JtextField学号,姓名专业,年级,出生4.5.2 删除模块的主要方法删除模块的主要方法方法如表4-11所示:表4-11删除模块的主要方法名称功能备注 Delete创建删除界面构造方法ActionPerformed处理ActionEvent事件接口方法删除学籍信息时用户只需输入学生的学号即可删除文本文件中的该生的学籍信息,其实现是基于查询功能,首先是查询文本文件中的数据,如果输入的学号和查询到的信息相同时,提示用户是否要删除该生学籍信息,如果选择是(Y),则删除该学生的所有信息。在实现删除功能时,本系统采用缓冲流Stri
30、ngBufferbuf的相关特性,在信息匹配成功之后,使用readLine()方法自动查找到该学籍信息在文本文件中所在的行,将该行之前的内容使用append()方法追加到缓冲流buf中,而该行数据则设置为空追加至buf中,该行之后的内容则正常追加至buf中,然后再写入文本文件text1.txt中,其中也包括对文件读取写入的异常的处理,从而实现了信息的删除。4.6 本章小结本章主要介绍了系统的各个模块的主要变量以及所用的主要方法,并以表的形式列出,使得程序设计起来更加简明条理。第5章 系统测试5.1 系统测试的目的系统测试是为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的错误的测试
31、。测试的目的就是希望能以最少的人力和时间发现潜在的各种错误和缺陷。应根据开发各阶段的需求、设计等文档或程序的内部结构精心设计测试用例,并利用这些实例来运行程序,以便发现错误。信息系统测试应包括软件测试、硬件测试和网络测试。硬件测试、网络测试可以根据具体的性能指标来进行,此处所说的测试更多的是指软件测试。系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析系统设计和实施的最后复查。5.2 功能测试系统完成之后,通过全面的功能测试,使系统真正达到实际应用的需求。具体有以下方面。5.2.1 登录功能测试输入用户名和密码,若数据库用户表中存在该用户并且用户名与密码匹配,再判断用户的权
32、限,进入相应的页面;若用户名不存在或者用户名与密码不匹配,则提示“登录信息不正确或用户已注销”另外再把xxx or 1=1分别作为用户名和密码输入,如果能进去则说明登录部分曾在Sql注入问题。学生学籍管理系统测试登录功能的窗体如图5-1所示:图5-1 学生学籍管理系统测试登录功能的窗体5.2.2 添加功能测试在各个模块中点击添加按钮,按照提示输入各种数据,看是否会报500错误。学生学籍管理系统测试增加功能的窗体如图5-2所示:图5-2 学生学籍管理系统测试增加功能的窗体5.2.3 删除功能测试在各个模块中点击删除按钮,看是否能进行单个删除和批量删除。学生学籍管理系统测试删除功能的窗体如图5-3
33、所示:图5-3 学生学籍管理系统测试删除功能的窗体5.2.4 修改功能测试在各个模块中点击相应链接,按照提示修改信息,看是否会报500错误。学生学籍管理系统测试修改功能的窗体如图5-4所示:图5-4 学生学籍管理系统测试修改功能的窗体5.2.5 查询功能测试在各个模块中按照不同条件查询数据,看是否能够查出正确的数据。学生学籍管理系统测试查询功能的窗体如图5-5所示:图5-5 学生学籍管理系统测试查询功能的窗体5.3 本章小结本章主要介绍了对已完成的系统进行测试的方法及流程,通过对系统各个模块进行测试,从而使得系统更加完善,也从中找出系统设计时所遗留的错误,并加以改正。结 论经过几个月的设计和开
34、发,“学生学籍管理系统”基本设计完毕。其功能基本达到预期目的,并提供部分系统维护功能,对于数据的一致性的问题也通过程序进行了有效的解决。但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,有待进一步改善。本系统的用户管理和权限管理是使本系统设计更上一层楼的重点。若可能,设置增删改查用户功能,所有用户必须是系统中已经存在的学生或教师,但已经存在的学生或教师不一定是本系统的用户。另外,管理员可以自定义各种角色,对每种角色可以设置浏览(本人或他人)、新增、删除(本人或他人)、修改(本人或他人)各功能模块各数据条目,对每个用户应用不同角色,也可对用户直接配置权限。此处是非常复杂的设计。致 谢
35、首先要感谢我的指导老师,这篇论文从初稿到定稿最后到完成可以说是离不开他的悉心指导,耐心教诲,而且他不仅给我作指导,还忙于其他同学们课程,工作很忙、很辛苦,但是丝毫没有影响到论文指导,刘杰老师的渊博知识和严谨务实的工作精神也使我受益非浅,所以非常敬佩和感谢老师。其次我要感谢的是同学,在一开始的调查和结构化设计中他们给予了我很大的帮助,不仅帮我解答了不少的难点,还给我提出了许多建议。我会以他们为榜样,更好地努力,将这种精神带到以后的工作和学习,使得自己更上一层楼。最后要再次感谢我的老师同学们,是你们给我的帮助才让我完成了此次的设计,在此表示由衷的感谢。参考文献1 杨中科现代计算机发展实录,清华大学
36、出版社.2007年9月2 JOHNSON R.Expert one-on-one J2EE design and developmentM. 魏海萍译.北京:电子工业出版社,20033 沈洁Java课程设计设计入门经典,清华大学出版社.2007年3月4 曾建潮.软件工程,武汉理工大学出版社.2008年5月5 GAMMA E, HELM R, JOHNSON R, et al. Design patterns:Elements of reusable object-oriented softwareM. Addison Wesley, 19946 孟小峰,王珊.Java导论,机械工业出版社,20007 张立科.J2EE课程设计实例,人民邮电出版社,20048 JOHNSON R, HOELLER J, ARENDSEN A, et al. Java/J2EE application framework reference document. V1.1. 20049 张爱平,赖欣.数据库应用及实现在JSP中调用JavaBean实现Web.计算机时代,200710 崔巍编,数据库系统及其应用(第二版),高等教育出版社,2003