Java EE编程作业.docx
《Java EE编程作业.docx》由会员分享,可在线阅读,更多相关《Java EE编程作业.docx(24页珍藏版)》请在冰豆网上搜索。
![Java EE编程作业.docx](https://file1.bdocx.com/fileroot1/2023-1/31/36200334-c06b-401f-8a77-272ec52f85f8/36200334-c06b-401f-8a77-272ec52f85f81.gif)
JavaEE编程作业
JavaEE编程技术
(一)
实训报告
题目:
图书管理系统系统
设计者:
赵硕
专业班级:
计应14-4
学号:
411420010029
2015年07月09日
河南理工大学计算机学院
1.1项目背景和需求分析
1.1.1项目背景
对易读性的追求。
再设计的过程中我们应该根据实际的情况进行设计,做到具体问题随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。
随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。
书籍做为人类的精神食粮,在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种各样不同的选择。
与此同时,为了管理大量的图书,图书管理系统也大量的出现,随着图书的大量增加,其管理难度也越来越大,如何优化管理也就成为了一个大众化的问题。
现已有的图书管理系统,其功能已十分强大,为了便于管理员对图书管理系统进行妥善的管理和读者的查询,图书管理系统为管理员提供了管理日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库等功能,为读者提供了书籍查询、读者借阅信息查询、图书网上续借等很多功能。
大学为我们提供了自由的学习环境,使我们有更多的时间到图书馆借阅书籍,让我们可以随时掌握各方面的知识,不断提高自我、充实自我,但由于图书馆藏书成千上万,我们很难一本一本的去查找自己感兴趣的书籍,因此我们会经常用到学校为我们提供的图书管理系统,用时间长了便对此产生了兴趣,正好本次课程设计为我们提供了良好的机会,让我们亲自设计并实现了图书管理系统的部分功能。
设计一个图书管理系统必不可少的必须对全管书籍进行分类汇总。
而这就是我们所说的数据库设计的第一阶段:
需求分析。
在这一阶段除了对具体情况诸如实行对管理员的管理、对读者的管理、书籍管理、书籍的借阅与归还、借阅超时等功能的实现,还需要对用户的需求进行调查和分析,否则就失去了设计这个系统的意义了。
对于界面的设计我们应该追求的是:
美观、易读性强、清晰度高;原则是:
不能因为刻意追求美观而以整个界面的清晰度的牺牲作为代价,不能为了清晰度而抛弃具体分析,不刻意追求原则。
在对应的界面与MySQL数据库建立连接,并实现对应的SQL语句进行实现将产生的结果显示出来。
并运用捕捉异常的方法,将异常信息显示出来。
实现SQL语句的时候借助前台开发工具中关于数据处理的控件来完成。
对于读者而言他们的需求是了解图书的基本情况,自己的借阅情况。
总而言之就是实现对各个信息表的查询。
对于图书管理员而言要实现的功能相对而言比较多,例如实现新书入库、MySQL数据库表的创建、系统的维护等等,这些都需要设计和实现的。
1.1.2需求分析
图书信息管理系统是适应时代发展的需要,提高管理的效率而开发设计的。
通过对图书信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,及时为图书馆各部门管理人员提供全面、准确的各种数据。
实现了图书馆图书管理的简单化和规划化,提高了图书馆的工作效率,从而使图书馆能够以少的投入获得更好的社会效益与经济效益。
2.1相关技术
2.1.1J2EE介绍
J2EE(Java2PlatformEnterpriseEdition)是一套面向企业应用的体系结构,它是由Sun公司和多家公司共同参与制定的一个企业级的分布式应用规范。
Java不仅仅是一门编程语言,随着其不断的发展,Java已经成为一门非常庞大的技术体系。
这个体系是以Java为核心的,它还包括JavaApplet、RMI-IIOP、JavaIDL/CORBA、JavaBeans、servlet、JSP、JSTL、JDBC、JNDI、EJB等等,而J2EE正是在Java的基础上整合了这些关键的技术而形成的一个新平台。
Java2是Sun公司推出的第二代Java,为了将Java2推广应用到各个领域中,Sun公司先后推出了多个版本的Java2应用平台,分别为:
袖珍版(J2ME)、标准版(J2SE)和企业版(J2EE)。
Sun公司就是通过这三个版本的Java2平台,使Java的应用得到了极大的扩展。
从家电设备中的嵌入式芯片、手机和掌上电脑,到各种应用服务器现在都可以使用Java2进行开发。
在JaVa2以前,Java一直定位为一种语言,到Java2时,Sun公司实际上已经将Java定位成一种平台。
由于包含了Java虚拟机(JVM)和Java运行环境(JRE),Java几乎是不依赖于任何操作系统的。
例如,如果在Pentium处理器中嵌入JVM,那么Java语言就可以像汇编语言一样直接运行在处理器上了。
Java平台使得用户可以直接在平台上进行开发,并在平台上运行。
整个平台可以很容易地从一台机器移植到另一台机器上,而不用做任何更改。
J2EE制定了一组规范,将J2EE的平台责任划分成七大部分以实现软件开发的分工。
每个部分都由独立的供应商或专业人员来完成,从而大大提高了开发效率。
这七部分是:
平台供应商:
主要提供J2EE平台,包括组件容器、平台APIs等;
组件供应商:
负责提供应用程序组件,包括HTML教程页面设计人员、JSP程序员、EJB开发人员等等;
组件装配人员:
组装由组件供应商提供的组件,最后形成EAR(EnterPriseArchive)文件;
部署人员:
将装配好的组件部署到容器上;
系统管理员:
管理和维护部署好的系统;
工具供应商:
提供开发组件所使用的工具;
系统组件供应商:
提供系统组件。
2.1.2MyEclipse简介
MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。
MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。
可以说MyEclipse几乎囊括了目前所有主流开元产品的专属eclipse开发工具。
MyEclipse2013已经正式发布。
MyEclipse2013支持HTML5、JQuery和主流的Javascript库。
随着MyEclipse2013支持Html5,你可以添加音频、视频和API元素到你的项目,从而为移动设备创建复杂的Web应用程序。
你甚至还可以通过HTML5可视化设计器设计令人难以置信的用户界面。
同时,随着MyEclipse2013支持JQuery,你可以通过插件提升性能,并添加动画效果到设计中。
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。
2.1.3数据库
SQLServer是一个后台数据库管理系统,它功能强大操作简便,日益为广大数据库用户所喜爱。
越来越多的开发工具提供了与SQLServer的接口。
SQLServer是一个关系数据库管理系统,它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。
于1988年推出了第一个OS/2版本,在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。
SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的最新版本,该版本继承了SQLServer7.0版本的优点,同时又比它增加了许多更先进的功能、具有使用方便、可伸缩性好与相关软件集成程度高等优点。
可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。
MSSQLServer不但可以应用于大中型数据库管理中,建立分布式关系数据库,并且也可以开发桌面数据库。
事实上,SQLServer数据库处理的基本结构,采取关系型数据库模式,尽管如此,相信大家都可以轻易的发现,在SQLServer的数据库处理方式,则是使用面向对象的操作方式与精神,也就是说,SQLServer的所有功能,都可以基于系统已经建立好的一些对象来达成,是相当OO(面向对象)的一个系统结构。
SQLServer企业管理器是SQLServer的主要管理工具,它提供了一个遵从MMC标准的用户界面,使用户得以:
定义SQLServer实例组。
将个别服务器注册到组中。
为每个已注册的服务器配置所有SQLServer选项。
在每个已注册的服务器中创建并管理所有SQLServer数据库、对象、登录、用户和权限。
在每个已注册的服务器上定义并执行所有SQLServer管理任务。
通过唤醒调用SQL查询分析器,交互地设计并测试SQL语句、批处理和脚本。
唤醒调用为SQLServer定义的各种向导。
3.1总体设计包括功能模块和数据库表设计
3.1.1功能模块
图书信息管理系统管理员登陆与操作模块主要包括以下功能:
1.员工管理
(1)员工添加
此模块主要的实现功能是添加新的员工信息,即当有新的员工要进入本图书馆工作时,可以通过此功能实现,当数据库中存在其新信息,即成为本图书馆的新一位员工。
其中信息分别包括员工编号、员工姓名、性别、生日、密码,备注。
同时可有三项功能在此处实现,即添加、重置以及返回。
(2)员工删除
此模块可以删除一些不再在本图书馆工作的员工资料,从而达到对数据库中的清理,即清除一些不必要资料,此处有两种删除途径,分别为按会员编号删除、按姓名删除,并可通过所输入的关键字尽快找到所要删除的资料。
2.读者管理
(1)读者添加
此模块主要的实现功能是添加新的读者信息,即当有新的读者要看查看本图书馆中的书藉,可以通过此功能实现,当数据库中存在其新信息,即成为本图书馆的新一位读者。
其中信息分别包括图书证号、学生姓名、性别、系别、班级,同时可有三项功能在此处实现,即添加、重置以及返回。
(2)读者修改
此模块主要的实现功能对有信息更新的读者进行即时修改,以随时更新读者在数据库中的信息。
本模块通过图书证号确定读者,可对读者信息的新图书证号、学短姓名、性别、系别、班级。
此处可分别实现对该功能的修改、重置、返回。
(3)读者查询
此模块主要可对所要了解的读者信息。
即把读者的信息从数据库调出来,显示在该窗口中的文字区域。
查询方式分别有按图书证查询、按姓名查询、按班级查询、按年级查询,并可通过办理入相应的关键字,更加缩小查询范围。
此处可实现查询和返回功能。
(4)读者删除
此模块可以删除一些不再使用本系统的读者资料,从而达到对数据库中的清理,即清除一些不必要资料,此处有四种删除途径,分别为按图书证号删除、按姓名删除、按班级删除、安年级删除,并可通过所输入的关键字尽快找到所要删除的资料。
此处可分别实现对该功能的修改、重置、返回。
3.图书信息管理功能
(1)新书入库功能介绍
此模块主要的实现功能是将新来的图书输入到图书馆管理系统的书库当中,其中主要按如下信息往书库中输入,这部分的操作主要是便于书库合理的管理,有利于读者能够对新书有一个更详细的了解。
其中包括如下信息:
新书书号、新书名称、新书出版日期、新书出版社、入库数量、编写作者、新书单价。
(2)书籍查询功能介绍
在图书馆管理系统中书籍查询是最基本的功能,读者可以根据自己的需求来查询想要借阅的书籍。
本系统是用Java应用程序和Access数据库一起开发的其中利用Java来编程实现功能的代码和布置运行界面。
界面是由检索项、检索词和显示文本区三个部分组成的用户根据自己的需要在检索项中选择自己所要按什么字段进行查询,其中书籍查询功能的检索项中可以按书号查询、按书名查询、按作者名查询、按出版社查询、按入库时间查询等基础查询。
选择检索项后用户只要在检索词中添写自己所要查询的内容并确定键确认后用户要查询的内容就可以在显示文本区中显示出来。
用户可以根据显示的信息得知自己所要借阅书籍的情况。
4.图书借还管理
(1)借阅书籍功能介绍
此模块主要实现读者可凭有效的图书证号,借阅图书馆内未借出的图书。
输入图书证号后,可显示了该图书证持有者的全部信息(包括借书证号、姓名、性别、所在班级、所属系部、当前可借阅图书个数),供读者确认信息。
通过输入有效的图书编号,查询该图书的全部信息(包括书号、书名、作者、出版社、是否借出、价格)。
借阅成功后,将该图书证号、书号、借阅日期、应还日期信息插入到数据库的表中进行记录。
(2)归还书籍功能介绍
此模块主要实现读者凭所要归还图书的图书证号归还图书。
输入所要归还的图书编号后,可显示了该图书证持有者的全部信息(包括借书证号、姓名、性别、所在班级、所属系部、当前可借阅图书个数),供读者确认信息。
还书成功后,从数据库中删除该书的借出记录,并修改数据库中的相应信息。
功能模板:
(1)系统的总体功能模块
(2)员工管理”功能模块用于增加员工,删除员工,修改员工已有信息,查询已有员工相关信息。
(3)“读者管理”功能模块用于新生入校时增加使用本系统的读者信息,以及老生毕业离校时删除相关读者信息,清楚数据库,查询读者的借阅书籍情况。
(4)“图书信息管理”功能模块用于新书入库,丢失或者陈旧不可用的书籍的出库,已有书籍的查询。
(5)“图书借还管理”功能模块用于读者借书和还书的登记.
本系统将用户划分为三种类型,即系统管理员、员工和读者。
系统管理员为Admin,他可以管理其他用户和员工的信息,在其他方面的权限相同。
3.1.2数据库表设计
1.概念结构设计
根据需求分析抽象出信息结构,可得该系统的E-R图。
用户E-R图,如图
2逻辑结构设计
根据上述的概念结构设计出逻辑结构,将E-R图转换为关系模型。
数据库Bookmanage包含以下5个表:
员工信息表yuangong、用户信息表Users、读者信息表duzhe、图书信息表tushu、图书借还信息表jiehuan。
(1)员工信息表yuangong
用来保存员工编号,姓名,性别,密码,备注等信息。
表yuangong的结构如表所示。
员工的结构
编号
字段名称
数据结构
说明
1
yid
char
记录编号
2
yname
Varchar2(30)
记录员工姓名
3
ysex
Varchar(6)
记录员工性别
4
ybirthday
date
记录员工生日
5
ynote
Varchar2(100)
记录员工是否迟到或者是否需要删除
6
ypassword
char(6)
记录员工登陆系统密码
(2)图书信息表
编号
字段名称
数据结构
说明
1
tid
char(6)
记录图书编号
2
tname
varchar2(30)
记录图书名称
3
tpress
varchar2(30)
记录图书出版地址
4
tprice
number(5,2)
记录图书价格
图书的结构
本系统将用户划分为三种类型,即系统管理员、员工和普通用户。
系统管理员为Admin,他可以管理其他用户的信息,在其他方面的权限相同。
前面是通过前台来实现系统安全性的,我们也可以对数据库进行身份验证,可以从服务器角度建一个登录名,使得不同的服务器角色拥有不同的权限,从而实现对数据库的不同权限的管理,以此来增强图书信息管理系统的安全性。
(1)创建表yuangong
创建表yuangong(员工信息表),它的代码如下:
createtableyuangong(
yidchar(5),
ynamevarchar2(30),
ysexvarchar2
(2),
ybirthdaydate,
ypasswordchar(6),
ynotevarchar2(100),
constraintsyuangong_pkprimarykey(yid)
);
insertintoyuangongvalues('00001','张三','男',to_date('1991-01-01','yyyy-mm-dd'),'123456','无');
insertintoyuangongvalues('00002','李四','男',to_date('1991-01-01','yyyy-mm-dd'),'123456','无');
insertintoyuangongvalues('00003','王二','女',to_date('1991-01-01','yyyy-mm-dd'),'123456','无');
insertintoyuangongvalues('00004','刘一','女',to_date('1991-01-01','yyyy-mm-dd'),'123456','无');
(2)创建表tushu
创建表tushu(图书基本信息表),它的代码如下:
createtabletushu(
tidchar(6)primarykey,
tnamevarchar2(30),
tpressvarchar2(30),
tpricenumber(5,2),
tcountnumber(4)
);
insertintotushuvalues('000001','Java入门教程','高等教育出版社','39','20');
insertintotushuvalues('000002','数据库','高等教育出版社','39','20');
insertintotushuvalues('000003','数据结构','高等教育出版社','39','20');
insertintotushuvalues('000004','数据库系统概论','高等教育出版社','59','20');
insertintotushuvalues('000005','三国演义','清华出版社','49','20');
insertintotushuvalues('000006','西游记','高等教育出版社','39','20');
insertintotushuvalues('000007','C语言','高等教育出版社','39','20');
insertintotushuvalues('000008','JAVA语言','高等教育出版社','39','20');
insertintotushuvalues('000009','JavaEE框架','清华出版社','39','20');
insertintotushuvalues('000010','网页制作','高等教育出版社','39','20');
insertintotushuvalues('000011','组成原理','高等教育出版社','39','20');
insertintotushuvalues('000012','操作系统','清华出版社','39','20');
(3)创建关系用户数据表user
创建关系用户数据表user的代码如下:
createtableuser(
uidchar(8)primarykey,
upasswordvarchar2(30),
unotevarchar2
(2),
);
创建读者基本信息数据表duzhe
创建读者基本信息数据表duzhe的代码如下:
createtableduzhe(
hidchar(8)primarykey,
hnamevarchar2(30),
hsexvarchar2
(2),
hbirthdaydate,
htelvarchar2(11)
);
importjava.awt.EventQueue;
importjava.awt.Frame;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JPasswordField;
importjavax.swing.JTextField;
importjavax.swing.border.EmptyBorder;
import.csuinfo.listener.QuXiaoactionlistener;
import.csuinfo.listener.QueDingActionListener;
publicclassFrmDengLuextendsJFrame{
privateJPanelcontentPane;
privateJTextFieldtxtYongHuMing;
privateJPasswordFieldtxtPassWord;
/**
*Launchtheapplication.
*/
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
FrmDengLuframe=newFrmDengLu();
frame.setVisible(true);
}catch(Exceptione){
e.printStackTrace();
}
}
});
}
/**
*Createtheframe.
*/
publicFrmDengLu(){
setTitle("河南理工大学图书信息管理系统");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,374,183);
contentPane=newJPanel();
contentPane.setBorder(newEmptyBorder(5,5,5,5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabellblYongHuMing=newJLabel("\u7528\u6237\u540D");
lblYongHuMing.setBounds(84,28,54,15);
contentPane.add(lblYongHuMing);
txtYongHuMing=newJTextField();
txtYongHuMing.setBounds(190,25,90,21);
cont