基于java图书馆管理系统毕业论文.docx
- 文档编号:23710103
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:63
- 大小:1.99MB
基于java图书馆管理系统毕业论文.docx
《基于java图书馆管理系统毕业论文.docx》由会员分享,可在线阅读,更多相关《基于java图书馆管理系统毕业论文.docx(63页珍藏版)》请在冰豆网上搜索。
基于java图书馆管理系统毕业论文
基于java图书馆管理系统毕业论文
第1章序言1
1.1课题开发背景及意义1
1.2课题研究容2
第2章开发工具及相关技术4
2.1开发工具4
2.2开发运行环境8
2.3相关技术支持12
2.4MVC模式15
第3章系统总体设计17
3.1功能与模块分析17
3.2系统实现流程图18
3.3系统用例图19
第4章数据库设计21
4.1数据库分析21
4.2数据库概念设计21
4.3数据库逻辑结构设计24
4.4数据库E-R图28
第5章系统详细设计30
5.1公共模块设计31
5.2基础数据维护模块设计35
5.3新书订购管理模块设计38
5.4借阅管理模块设计40
5.5系统维护模块设计44
第6章系统测试与优化46
6.1系统安全优化46
6.2身份验证48
6.3异常处理49
6.4系统测试50
第7章总结与展望53
参考文献54
致谢辞55
附录1英文参考文献56
附录2中文参考文献60
1序言
1.1课题开发背景及意义
当今社会随着图书馆规模的不断壮大,图书馆馆藏的图书品种、数量也逐渐增多。
在图书馆不断发展的同时,其常年采取的传统的人工方式管理暴露了一些问题:
⑴检索速度慢、效率低
因为图书馆的藏书种类多、数量大,将藏书准确地分门别类,快速检索,手工进行非常困难往往是终于查到了图书的信息,馆中没有此书或已被别人借走。
图书馆的规模越大,这个问题越突出。
⑵借书、还书工作量大
借书、还书频率越大,说明图书馆的作用越大,然而随之而来的大量的借书、还书登记、实存图书的更新以及借出图书超期、遗失等的处理,其工作量之大,往往是人工操作所难以胜任的。
而且经常会出现这样那样的差错。
⑶图书统计工作难、藏书更新不能及时完成。
图书馆的图书应根据科学技术的发展和教学工作的需要及时添加和更新,然而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计工作难以及时完成,藏书的更新也就很难有针对性地进行,藏书的知识结构得不到良好地控制。
当今高校发展速度很快,图书馆的规模和藏书数量也不断的扩大,为了解决海量图书的管理问题,改变传统的管理方式也是迫在眉睫了。
随着计算机的广泛应用,其逐步成为现代化的标志。
图书馆或者一些企业部,甚至是书店,在正常运行过程中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息、还书信息。
因此需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,要对因此而产生的单据进行及时的处理,为了提高图书馆或者企业部对图书存销的自动化的管理,能够更快速的满足读者的要求,提高各种工作的效率,现对其设计相应的系统,以达到上述的目的。
图书管理系统的主要功能是实现图书馆图书借阅和归还的管理的自动化。
围绕这一主要功能,本系统涉及到以下核心功能:
借阅管理,归还管理。
除了这些核心功能外,还包括一些基本和辅助功能,它们是:
用户管理、图书馆参数管理、图书管理、统计查询。
1.2课题研究容
本课题主要应用Java语言编程,以MVC简易分层架构,再结合与MySQL数据库连接等相关知识进行图书馆管理系统的设计和实现。
本课题容包括以下容:
⑴登录管理:
为用户提供登录、注销及修改密码等功能。
登录时有相应的身份验证功能,以便能让不同权限的用户能使用到相应的功能;修改密码时要求每个用户只能修改自己的密码。
⑵用户信息管理:
每个用户可以对自己的信息进行查看以及修改等操作,与此同时用户还可以查看自己当前借阅信息和历史借阅信息。
⑶新书订购:
可以为图书馆里增添新书下购书订单,并能对订购单进行验收。
每一个订单中可以包含多本图书,可以对订单中的图书信息进行修改。
在验收订单时,输入相应的订单号后就能找到要验收的订单,确认验收即可。
⑷图书信息管理:
图书管理员可以对图书进行增加及更新操作。
图书的添加时,要检测正要添加的图书是否与馆藏的图书重复,并做相应的处理。
对图书信息更新时,按照图书的编号找的馆藏图书后,对图书信息进行更新即可。
⑸图书借阅管理:
图书管理员可以对图书进行借阅和归还操作。
图书的借阅与归还是图书馆最重要的工作,在图书借阅时要判断该书是否已经被该用户借阅了,并进行相应的操作。
归还时,只要找到该用户的借阅信息,归还图书即可。
⑹图书查询:
用户可以通过图书编号以及书名进行查询。
图书的查询功能是为了满足用户想要了解馆藏图书信息的需求而添加的。
图书查询是条件查询,按照图书编号、图书名称、、作者等信息进行条件查询,当要输入的信息为空是就将图书全部查询出来。
2开发工具与相关技术
2.1开发工具
IDE(IntegratedDevelopmentEnvironment,集成开发环境)。
其缩写形式IDE同时也代指“电子集成驱动器”。
IDE集成开发环境(简称IDE)软件是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。
该程序可以独立运行,也可以和其它程序并用。
2.1.1Eclipse简介
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。
虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。
Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。
由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于Java开发工具。
尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++和COBOL等编程语言的插件已经可用,或预计将会推出。
Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如容管理系统。
基于Eclipse的应用程序的一个突出例子是IBMRationalSoftwareArchitect,它构成了IBMJava开发工具系列的基础。
EclipseBabel项目提供了多种语言包,用户可以根据自己的需求来对Eclipse进行汉化,汉化以后的界面如图2.1所示。
图2.1汉化后的Eclipse
2.1.2NetBeans简介
NetBeans由Sun公司(2009年被甲骨文收购)在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的JavaIDE。
NetBeans当前可以在Solaris、Windows、Linux和MacintoshOSX平台上进行开发,并在SPL(Sun公用许可)围使用。
NetBeansIDE是一个屡获殊荣的集成开发环境,可以方便的在Windows,Mac,Linux和Solaris中运行。
NetBeans包括开源的开发环境和应用平台,NetBeansIDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeansIDE目前支持PHP、Ruby、JavaScript、Ajax、Groovy、Grails和C/C++等开发语言。
NetBean开发环境提供了丰富的产品文档和培训资源以及大量的第三方插件。
它是一种“所见即所得”的开发工具,界面如图2.2。
图2.2NetBeans界面图
Swing是一个为Java设计的GUI工具包。
Swing是JAVA基础类的一部分。
Swing包括了图形用户界面(GUI)器件如:
文本框,按钮,分隔窗格和表。
Swing是一个用于开发Java应用程序用户界面的开发工具包。
它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。
Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。
但是SWING提供许多比AWT更好的屏幕显示元素。
它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。
它们是JFC的一部分。
它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。
这意味着你可以在任意平台上使用JAVA支持的任意面板。
轻量级元件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。
使用NetBeans开发Swing,只要将控件从控件栏拖出来,放到你想要放的地方,然后选中它,在属性栏中编辑它的相应事件,就能轻松完成。
NetBeans提供的丰富的控件能够让我省去了编写界面的时间,极大的节省了编码者的时间。
NetBeans控件栏如图2.3.
图2.3NetBeans控件栏
2.2开发运行环境
本系统是在64位Window7下开发的,配置的编程环境应该与window操作系统相匹配。
使用Java开发桌面应用程序相对简单,只要正确安装JDK、Netbeans、MySQL数据库即可。
下面是图书管理系统的具体开发环境:
⑴系统开发平台:
NetBeansIDE7.1.2
⑵数据库:
mysql-5.5.23
⑶数据库管理工具:
NavicatPremium
⑷运行平台:
WindowXP及以上
⑸Java开发包:
jdk-7u4-windows
⑹分辨率:
800×600以上
⑺GUI开发包:
Swing
Java应用程序开发需要的环境如上面所说。
下面介绍一下开发Java应用程序所用到的相关技术的介绍。
2.2.1JDK简介
JDK(JavaDevelopmentKit)是SunMicrosystems专门针对Java程序员开发的免费软件开发工具包。
自从Java推出以来,JDK已经成为使用最广泛的JavaSDK。
JDK是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。
此外,还可以使用OpenJDK进行开发。
JDK是学好Java的第一步,所以对程序开发人员,必须使用JDK进行开发调试。
对于普通用户仅需要安装JRE来运行Java程序即可。
在Oracle官方上下载JDK安装文件,点击安装包安装即可。
JDK安装完成后文件夹结构如图2.4。
图2.4JDK安装文件夹
bin文件夹包含各种命令,例如javac命令可以将Java源文件编译成class文件;java命令可以运行class文件;jar命令可以将相关的类文件爱你进行打包;javadoc命令用于从源代码中提取说明文档。
src压缩文件包含了JavaSEAPI的源代码。
正是因为有这么多的命令,许多程序的运行需要JDK,所以理所当然要配置Java的环境变量。
右击“我的电脑”,点击“属性”>“高级”>“环境变量”>“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH,若已存在则点击“编辑”,不存在则点击“新建”。
JAVA_HOME指明JDK安装路径,D:
\Software\Java\jdk1.7.0_04/jdk,此路径下包括lib,bin,jre等文件夹;Path使得系统可以在任何路径下识别java命令,设为:
%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;CLASSPATH为
java加载类(classorlib)路径,设为%JAVA_HOME%/lib/dt.jar;%JAVA
_HOME%/lib/tools.jar。
上面的%JAVA_HOME%就是引用前面指定的JAVA_HOME。
设置截图如图2.5。
图2.5JDK环境变量配置
2.2.2MySQL数据库简介
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。
在2008年1月16号被Sun公司收购。
而2009年,SUN又被Oracle收购。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库。
这样就增加了速度并提高了灵活性。
MySQL的SQL“结构化查询语言”。
SQL是用于访问数据库的最常用标准化语言。
MySQL软件采用了GPL(GNU通用公共许可证)。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型为了降低总体拥有成本而选择了MySQL作为数据库。
图2.6MySQL命令窗
由于MySQL数据库安装完成后,要使用是用命令提示符窗口,相对不变。
我们要安装一个前台的图形化界面程序,以便进行数据库操作。
Navicat是一套快速、可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。
它可以用来对本机或远程的MySQL、SQLServer、SQLite、Oracle及PostgreSQL数据库进行管理及开发。
Navicat的功能足以符合专业开发人员的所有需求,但是对数据库服务器的新手来说又相当容易学习。
有了极完备的图形用户介面(GUI),Navicat让你可以简便地以安全且简单的方法创建、组织、访问和共享信息。
Navicat适用于三种平台-MicrosoftWindows、MacOSX及Linux。
它可以让用户连接到任何本机或远程服务器、提供一些实用的数据库工具如数据模型、数据传输、数据同步、结构同步、导入、导出、备份、还原、报表创建工具及计划以协助管理数据。
图2.7Navicat工作界面
2.3相关技术支持
2.3.1JDBC操作数据库
在本程序中,将数据信息保存到MySQL数据库中。
因此需要使用JDBC技术来操作数据库。
JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序。
本系统中将操作数据库的代码统一编写到DataAccess包中的Database类中。
获取连接、操作数据库、释放连接的关键代码如下:
publicclassDatabase{
protectedstaticStringdbClassName=
".mysql.jdbc.Driver";//数据库连接驱动类
protectedstaticStringdbUrl="jdbc:
mysql:
//localhost:
3306/library";//数据库连接URL
protectedstaticStringdbUser="meng";//数据库用户名
protectedstaticStringdbPwd="aptx4869";//数据库密码
privatestaticConnectionconn=null;//数据库连接对象
publicstaticConnectiongetConnection(){//默认构造函数
try{
if(conn==null){//如果连接对象为空
Class.forName(dbClassName);//加载驱动类
conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd);//获得连接对象
}
}catch(Exceptionee){
//ee.printStackTrace();
JOptionPane.showMessageDialog(null,"未成功加载驱动!
","错误",JOptionPane.ERROR_MESSAGE);}
returnconn;
}
publicvoidclose(){//关闭方法
try{
conn.close();//关闭连接对象
}catch(SQLExceptione){
//e.printStackTrace();
JOptionPane.showMessageDialog(null,"未成功关闭连接!
","错误",JOptionPane.ERROR_MESSAGE);
}finally{
conn=null;//设置连接对象为null值
}
}
}
2.3.2MySQL存储过程
存储过程(StoredProcedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
本系统将进行数据操作的部分写成了数据库的存储过程,并在Java中的DataAccess包中的Database类中调用存储过程。
调用存储过程例子的代码如下:
publicintLoginCheck(Stringname){
intflag=0;
try{
Connectionconn0=Database.getConnection();
//设置调用的存储过程名及参数情况
CallableStatementproc=conn0.prepareCall("{calllogincheck(?
?
)}");
proc.setString(1,name);//设置输入参数值1的值
proc.registerOutParameter(2,java.sql.Types.INTEGER);
//设置输出参数及返回类型
proc.execute();
if(!
proc.getMoreResults()){
flag=proc.getInt
(2);}
proc.close();
}catch(SQLExceptione){
JOptionPane.showMessageDialog(null,"数据库操作不成功!
","警告",JOptionPane.WARNING_MESSAGE);
}
returnflag;
}
2.4MVC模式
MVC是三个单词的缩写,分别为:
模型(Model),视图(View)和控制Controller)。
Swing创造性的采用了MVC(ModelViewController)模式。
MVC把控件(Component)划分成三个部分:
模型(Model):
管理这个模块中所用到的数据和值,如某个数据的最大值、最小值、当前值等数据;视图(View):
管理如何将模型显示给用户;控制器(Controller)决定如何处理用户和该模块交互时产生的事件,如用户单击一个按钮等。
本课题程序也采用了简单的分层,分为表现层、业务逻辑层、数据访问层。
表现层就是与用户交互的各种界面,这个层把用户的数据传递给业务逻辑层,同时能接受从业务逻辑层传来的数据;数据访问层负责执行各种数据操作,这个层把业务逻辑层传来的数据经过相应的处理,并形成对数据库操作的方法,执行这个方法就能完成对数据库的操作,这个层还能将从数据库返回的数据传递给业务逻辑层;业务逻辑层处于表现层和数据访问层之间,为两者传递数据。
下面图2.8描述的就是MVC模式。
图2.8MVC模式图
3系统总体设计
图书管理系统是一个高度集成的图书信息处理系统,通过将图书管理的各种功能进行整合,从而达到高度检索信息、提高工作效率、降低管理成本等目的。
一个典型的图书管理系统应该能够管理所有的图书种类、图书信息以及读者信息,还需要提供各种图书信息的检索查询功能。
该系统还需要能够对图书借阅、归还进行操作,并对读者的罚款进行自动计算。
通过该系统的自动化管理,能够大大减少图书馆管理人员,还能减少管理人员的工作任务,从而降低管理开销和成本。
3.1功能与模块分析
图书管理系统是管理图书的一个重要工具,一个功能完善的图书管理系统需要提供5个功能模块,分别是图书管理模块、读者信息管理、新书订购模块、图书借阅模块,以及系统维护模块。
其中各功能模块的具体说明如下:
图书管理模块:
该模块主要负责管理图书馆的图书各种信息和查询图书,如图书种类的名称、可借天数、罚款数目、图书编号、图书名称、作者、等信息。
包括图书查询、图书添加、图书类别添加、图书信息修改等模块。
读者信息管理模块:
该模块主要负责管理图书馆的读者信息,如读者编号、读者信息、证件号、最大借书量等信息。
新书订购管理模块:
该模块主要负责管理图书馆的新书订购邪的信息,包括新书订购和验收新书两个子模块。
图书借阅管理模块:
该模块主要负责管理图书馆的书籍借阅于归还,包括图书借阅和图书归还两个子模块。
系统维护模块:
该模块主要负责管理图书馆的工作人员信息,包括用户密码修改和用户管理两个子模块。
由各个模块可以都得到系统的模块结构图,模块结构图如图3.1。
图3.1模块结构图
3.2系统实现流程图
经实际思考分析、基于图书馆发展需求,现在将图书管理系统按照功能划分为基础数据维护模块、新书订购管理模块、借阅管理模块、系统维护模块模块等功能模块。
其中,基础数据维护模块用来维护读者信息,图书类别和图书信息,新书订购模块用于新书订购和验收新书,借阅管理模块用图书借阅、图书归还,系统维护模块用于更改口令和用户管理。
整个图书管理系统不但可以按照整体需求实现各种功能,同时也可以帮助图书馆管理人员安全、稳定、高效地实现管理体制。
基础数据维护模块包括了系统维护的全部容,方便管理。
新书订购管理模块可与快速查看新书信息。
借阅管理模块具有快捷查询、易于维护等特点。
系统维护模块可以方便地添加管理员,并能对已经存在的人员信息进行修改。
要使用系统首先需要对用户的身份进行识别,只有合法的用户才能进入系统;否则将不能进入系统。
进入系统后,首先打开的是系统的主窗体,在系统的首页的菜单或者功能区可以选择各种导航连接来进行个中操作。
图书管理系统结构图如图3.2。
图3.2图书管理系统结构图
3.3系统用例图
图书管理系统是一个部人员使用的系统,也就是说不是所有人都能够使用他,只有在图书馆登记注册的用户才能使用。
而在图书馆注册的用户也分两类:
一类是普通用户,拥有图书的借阅、归还和更改密码的权限;另一类是管理员,除了普通用户的所有功能外,还能够对书籍列表、书籍信息、读者信息等进行管理。
下面以管理员为用例,绘制其所对应的用例图如图3.3所示。
图3.3管理员用例图
相对与管理员普通用户所拥有的权限相对较少,只能借阅、归还图书和修改自己的密码。
普通用户的用例图如图3.4。
图3.4普通用户用例图
4数据库设计
4.1数据库分析
在开发图书管理系统是,考虑到图书量大,数据维护大的特点,决定采用MySQL作为数据库,用Navicat作为数据库管理软件。
在MySQL新建一个数据库,将其命名为library。
数据库中一共包含10表,用来存储不同信息,数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 java 图书馆 管理 系统 毕业论文