基于Java的图书管理系统毕业论文.docx
《基于Java的图书管理系统毕业论文.docx》由会员分享,可在线阅读,更多相关《基于Java的图书管理系统毕业论文.docx(28页珍藏版)》请在冰豆网上搜索。
基于Java的图书管理系统毕业论文
---文档均为word文档,下载后可直接编辑使用亦可打印---
摘要
现代大多数学校图书藏量种类繁多,各种类别的图书没有一个统一的管理平台,不同类别的图书区分上容易混淆,同种类别的图书入馆出馆记录困难。
因此,开发此款软件成功解决了上述问题。
图书管理系统更注重轻量化,管理人员只需进行简单操作,即可完成图书类别的增删改查操作和同种类别下图书的增删改查操作。
这是一款以C/S为架构方式、采用Eclipse为开发环境、利用Sqlyog作为数据库服务器、并基于Java语言开发的图书管理系统。
本系统具有运行速度快、安全性高、移植性强等特点。
关键词:
图书管理;Java;数据库;
BookManagementSystemBasedOnJava
Abstract
Mostmodernschoolbooksreservephyleticandvarious,varioustypesofbookswithoutaunifiedmanagementplatform,differentcategoriesofbookstodistinguisheasilyconfused,withdifficultcategoriesofbooksinthelibrarythelibraryrecord.Therefore,thedevelopmentofthissoftwaresuccessfullysolvedtheaboveproblems.
Thebookmanagementsystempaysmoreattentiontothelightquantization,themanagementpersonnelonlyneedtocarryoutthesimpleoperation,cancompletetheincrease,delete,changeandcheckoperationofthebookcategoryandtheincrease,delete,changeandsearchoperationofthebookunderthesamecategory.
ThisisabookmanagementsystemusingEclipseasthedevelopmentenvironment,Sqlyogasthedatabaseserver,andbasedontheJavalanguage.Thissystemhasthecharacteristicsoffastrunningspeed,highsecurityandstrongportability.
Keywords:
bookmanagement;Java;Database
1绪论
1.1课题背景
自从进入二十一世纪后,飞鸽传书、快马加鞭的书信方式的信息传递途径退出了历史的舞台;信息化、电子化的信息交流方式随着计算机科学的发展成为人类文明进步的重大推动器,计算机科学也被应用到了我们的日常生活中的每一个领域。
图书馆在我们的大学生活中扮演着重要的角色,学生们在此借阅图书、学习、交流。
传统的图书管理方式存在着许多缺点,例如:
图书种类区分混乱,无法按类上架;馆内图书丢失时,不易发觉;学生在需要借阅图书时,需要图书管理员查找图书馆里是否拥有此书、是否已被借出等。
相比旧时期单纯靠人工对不同种类图书进行区分,对同种类图书进行入馆出馆记录,这不仅会增加图书管理员的劳动成本、不必要的工作负担,还会不可避免的出现信息记录错误、信息不易修改、信息丢失等传统管理制度上的缺。
1.2研究意义
飞速发展的社会与计算机科学的变革有着密不可分的关系,高度信息化的今天,高效便捷快速成为人们所追求的一种工作方式,虽然计算机程序在各个方面让使用者体验到了其带来与传统管理模式所不可比拟的完成工作的方式,但有些程序操作起来复杂繁琐,这就使开发者不能根本的理解到程序在研究和开发时的初衷,一些用户不得不继续使用工作量庞大的手工作业;时间观念早已深入人心,所以图书管理系统为广大图书管理员带来了与以往的管理方式极大的不同使用体验。
图书管理系统可以根据用户对该系统功能的需要和所提供的数据,在操作界面实现对所有的图书信息的增添、删除,更改、查找功能,所以尽快实现图书管理信息化,规范图书管理制度是当今高校信息化发展的方向。
1.3研究内容和章节结构
这是一款以C/S为架构方式、采用Eclipse为开发环境、利用MySql为数据库服务器、并基于Java语言开发的图书管理系统。
首先,通过前期调研,对图书管理员的需求进行详细分析,设计了图书管理系统的登录模块,图书类别管理模块,图书信息管理模块。
其次,根据详细的设计实现了图书管理员对图书分类的增删改查功能和对图书信息的增删改查功能。
最后,对图书管理系统进行测试,若测试结果与预期结果相符则测试通过,若不符,则还需对系统进行改进。
第1章主要讲述了图书管理系统课题的开发背景和意义。
第2章介绍了系统环境的搭建与开发过程中用到的主要技术。
第3章对图书管理系统进行需求分析,通过了解实际应用环境与图书管理员的需求,做了可行性分析与功能需求分析,确定了要开发的功能。
第4章主要是对要开发的系统做设计,把上个章节总结出来的结果进行分析再分解。
把程序带入到系统设计的阶段。
通过系统设计环节能够得出具体的实现方法。
第5章通过编写代码实现了前几章节中所提出的功能,并且将结果以流程图和实际效果图的方式进行展示,为系统的最终测试提供了测试项目。
第6章主要描述了针对该系统的测试。
通过代码实现所完成的功能之后,需要对该系统进行针对性的测试。
测试方法为黑盒测试,进行测试之后才能了解到某个功能的漏洞。
2系统开发相关技术
2.1Java语言
Java语言是一种通过解释方式来执行的语言,其语法规则和C++类似。
同时,它又是一种跨平台的程序设计语言。
用Java语言编写的程序,可以在任何设备和平台上运行。
它在技术层面拥有较其他语言的通用性兼容性较强、高效性:
在帮助人们摆脱繁重复杂的数据中体现了其顺应时代的节省时间精力的优越性、跨平台依靠数据库实现信息的移植性和稳定的安全性,在我们的日常生活中,例如个人电脑、各种大小的数据中心、甚至游戏的控制平台,和我国重点发展的超级计算机项目,和与我们平时交流随处可见的移动电话及互联网等等,他们都离不开Java语言。
Java最初的出现是为了各种消费式的电子产品的内嵌入式芯片而设计的,而后用来发设计互联网的应用程序;我们知道作为对计算机科学有革命性意义的c++语言在Java语言出现后,面临了强有力的冲击,在当今“云”技术和移动端电子产品的巨大需因求下,Java因其独有的优势形成的它广阔的应用前景和庞大的市场需求;与我们熟知的c、c++语言相比,Java的编程语言风格类似与前两者,而Java更是一种单纯的面向对象的程序编写设计语言,但与c、c++语言不同的是,Java语言摒弃了前者在编写时易引起错误的指针(被引用取代)、运算符的重载等一些特型,并且添加了回收无需在被引用的对象在内存中所占用的空间及垃圾回收功能,真正意义上的帮助程序编写员使其不再为了内存的管理费尽心思;Java拥有多方面的优势:
跨平台性(在不相关的平台中,可以顺利运行)、面向对象性(使程序员可以集中精力于类的应用及设计上)、动态、健壮性、分布式。
再进过现代最初程序设计的c,更进于c++,现在的Java通过对于前者的继承,拥有了使大家易接受的特性。
2.2JavaEE相关介绍
在我们编写jsp代码时,因为庞大的各种代码和各种各样的业务逻辑缠在一团,并且他们之间融嵌,对于程序的扩展和日常的维护有着极其不便的影响。
每当业务需要不同更改时,对程序的编写员和完善设计的人都有着很大的工作负担。
为此为了更好地对程序的进行维护和扩展,这时就需要JavaEE技术来对项目的进一步的开展研发;其中JavaEE技术包括:
表示层技术、中间层技术、数据层技术。
作为Java2技术三大平台之一,它既继承了应用框架,他的出现不仅使程序的开发降低了成本,更重要的是其规避了C/S的缺点。
它拥有三层结构,即用户层、应用层、数据库服务器,可以使用户所操作的界面及尽可能的变得简洁简单。
2.3Eclipse相关介绍
Eclipse是一种支持跨平台的灵活的集成开发坏境,其本身也就是一个框架平台,它是基于Java语言的可以继续扩展的开发平台,虽然eclipse是使用Java语言进行的开发,但它不仅仅局限于对于Java语言的功能实现,我们所熟知的编程语言如:
Android、c、c++等语言也可以使用;它也是开放源代码的软件,eclipse对不同的用户群体有不同的概念,对一些人来说,eclipse是一个免费的Java开发平台。
对另一部分人来说,eclipse是灵活的、能适应现有的开发语言和未来某种新语言的开发环境。
对其他人来说,eclipse是一个完善的、能够布署高级的跟上时代的运行平台。
2.4MySQL相关介绍
MYSQL是一种专门用来于数据库通信的语言。
它有一下优点:
使用成本低甚至免费,原因是因为它是开放源代码的;性能良好,执行速度快;简单易操作,很容易的就可以进行安装和使用。
无论是对中小型项目的开发上,还是对世界知名网站的搭建上,MYSQL以它安全、稳定、高效等出色的性能使它成为当下最受人们喜爱的数据库管理系统,同时也在全球范围内得到了使用和安装[2]。
该系统由一家瑞典公司开发,是当下应用最广泛的关系型数据库管理系统之一。
因为它性能的出色,也可匹配其他的系统共同工作,在开发程序中可提供较为便利稳定的环境;MySQL是一种关系数据库管理系统,而它与另外管理系统不同的是,在将数据存储时,它不是将数据统一的放在同一个数据库当中,而是存放在不同的独立的表之中这种独特的存储方式使其拥有了更加灵活的性能,并大大的加快了运行的速度;MySQL所使用的语言是在访问数据库时最标准的语言,也是我们在平时建立与数据库连接时最常用的语言。
它时引用c语言和c++语言编写的,并且可以使用不同的编译器对其进行测试,这样的方式使它拥有了最原始代码可以灵活移植的特性;又因为MySQL在与其他操作系统可以轻易的实现建立且需要费用几乎为零,所以正是因为它这种开放源码的软件,使它拥有了其他大型数据库所没有的亲民度。
Sqlyog是一种拥有整洁清理规划,性能出众的图形化对于MySQL数据库系统的管理工具,这种工具的使用,可以使我们在全球任意一个通有互联网的设备中来随时随地的远程维护MySQL数据库系统;它拥有建立数据库,删除数据库,索引管理,监察数据库并对其进行修护分析,创建数据库日志等一系列对于管理MySQL数据库的功能,可以近乎完美相契合。
2.5JDBC关介绍
拥有了数据库和相关应用程序后,为了实现两者的连接,就需要使用JDBC作为接口将数据库中的数据与面向对象的应用程序搭建联系起来;JDBC全称是Java数据库连接标准,同时它也是Java核心类库的一部分,目前共有四类JDBC驱动:
一:
native-API,partlyJavadriver
此种驱动不适合连接数据库,因为使用此种驱动的前提是与其相连的客户端机器必须拥有配套的二进制代码。
二:
nativeprotocol,pureJavadriver
此种驱动适用于以网络为关系纽带连接数据库,因为这种驱动不仅能够在没有客户端软件的情况下使用,还可以将JDBC的调用变为网络协议供后台数据库使用。
三:
JDBC-ODBCbridgedriver
此种驱动只适用于数据库使用ODBC驱动的客户端。
因为它不仅与Java兼容性差,还需要使用这类驱动的客户端安装与其对应的ODBC驱动。
四:
JDBC-NetpureJavadriver
此种驱动适用于含有中间件的分布式应用。
因为它能够将DBC的调用转换为独立于数据库的网络协议。
3需求分析
3.1可行性分析
在应用程序的设计和开发之初,为了可以使程序更好的适应使用方的需求,以及所对应项目前的具体现状如:
市场的各项要求,应用开发中资源的供需能力,项目所需开发的大小,应用的具体技术,有无对其它项目的影响,整体研发所需资金,可否有效的实现盈利等方面都需要进行系统的分析和评估。
无论是在设计开发的初期还是在即将实现运行的中后期,都应该及时的对当下所面对的各项问题进行结合实际的合理解决;从商榷设计开发的意义到实际的投入到多种功能的编入,以及最后的测试运用,都离不开科学性、合理性、实际性、针对性的需求分析,所以需求分析是整个过程的基石。
3.1.1技术可行性
由于Java平台几乎已经嵌入了所有的操作系统,并且可以编写一次,就能够在大部分系统中运行,所以本系统采用Java为开发平台。
因为这次的选题“图书管理系统”是运行在PC端的轻量级软件,编译过程中遇到代码潜在的问题,可以通过请求指导老师帮助或者上网查阅资料来解决,所以开发此图书管理系统成为合适的选题。
3.1.2经济可行性
随着学校信息化管理水平的提高,以目前学校已经拥有了良好的硬件设施、软件环境以及畅通的校园宽带,无需再购置新的硬件设备和软件而增加开支,综合来看,在经济上足以配置一个新的图书管理系统。
此外,若图书馆采用本系统,就可实现不必再用手工登记整理图书资料,避免人员浪费,也方便对图书数据的管理,为图书管理员节省时间,提高了效率。
3.1.3操作可行性
国内高等院校已有管理信息系统应用的案例,管理员使用这些管理软件不再是难事。
图书管理系统界面简洁,操作简单,不需要对管理员进行专门的培训也可以熟练使用本系统。
综上所述,图书管理系统充分利用了学校现有的计算机软硬件资源,技术成熟,成本低,操作便捷,管理高效,使图书管理摆脱人工处理方式,实现信息化管理和数字化处理。
因此,本系统的实施是可行的。
3.2功能需求分析
图书管理系统是以减少图书管理员工作量,便捷查询保存图书信息等功能为设计初衷,即符合图书管理员的实际管理需求和馆藏图书数量等现实情况来设置相对应的具体功能的计算机程序,据此该系统除登录模块外,划分出另外两种功能模块:
图书类别管理模块、图书信息管理模块。
3.2.1用户登录模块
用户登陆模块是用户在使用图书管理系统时进入的首个模块,为了保证图书信息的安全性,防止他人恶意篡改图书信息,在此设置用户登录模块,用于登录用户身份信息验证,登录用户通过输入用户名和密码,与后台数据库信息进行匹配,若匹配成功,则可以进入系统对图书进行相应的管理;若匹配不成功,则会提示相关的错误,提醒用户重新输入正确的用户名及密码。
用户登录用例图如图3-1所示。
图3-1用户登录用例图
3.2.2图书类别管理模块
经过前期的调查得知,图书管理员在对图书类别进行整理时,主要是对图书类别进行增加与修改功能,为了方便图书管理员的后续工作需要,在此,我有对图书管理模块增加了类别查询与类别删除功能。
为了简化操作界面,我将图书类别的查询、修改与删除功能全部归类为图书类别维护模块。
图书类别管理模块用例图如图3-2所示。
图3-2图书类别管理模块用例图
3.2.3图书信息管理模块
同样,图书信息管理的需求也有四点:
即图书信息的添加、查询、修改与删除。
为了统一界面风格,同样将图书信息的查询、修改、删除操作归类为图书信息维护操作。
图书信息管理模块用例图如图3-3所示。
图3-3图书信息管理模块用例图
3.3非功能需求分析
3.3.1安全性需求
图书管理员在登录图书管理系统时,需要进行身份的认证,本系统采用的身份验证方式为用户名及密码,在一定程度上,保护了图书存储信息的安全。
3.3.2硬件需求
CPU:
GenuineInter(R)CPUT2080@1.73或以上(服务器);
内存:
1GB或以上(服务器);
硬盘:
120GB以上(服务器)。
3.3.3维护需求
维护性具体包括易分析性、易改变性、稳定性等相关内容。
对于易用性,考虑到不同用户的操作熟练度不同,所以在开发中,让操作界面更简洁、更方便,每次进行操作功能后,都会进行友好信息的提示。
对于稳定性,系统可能会因为用户的手误造成不必要的数据丢失或者数据更改,本系统加入了验证窗口,当用户进行某一指定操作时,系统会弹窗提示是否要进行操作,只有当用户点击确定之后才能执行指定的操作。
4系统设计
4.1系统结构设计
图书管理系统经过功能分解后分为三个模块:
用户登录模块、图书类别管理模块、图书信息管理模块。
系统结构设计图如图4-1所示。
图4-1图书管理系统结构图
4.2系统功能设计
4.2.1登陆功能
登录用户在进行登陆操作时,需要输入正确的用户名及密码,与后台数据库已录入身份信息进行匹配,若匹配成功,则可以进入系统对图书进行相应的管理;若匹配不成功,则会提示相关的错误,提醒用户重新输入正确的用户名及密码。
登录功能设计图如图4-2所示。
图4-2登录功能设计图
4.2.2图书类别管理功能
图书类别管理功能分为图书类别添加功能与图书类别维护功能,图书类别维护功能内又包含图书的查询、修改与删除功能,图书类别管理功能图如图4-3所示。
图4-3图书类别管理功能
4.2.3图书信息管理功能
图书信息管理功能分为图书信息添加功能与图书信息维护功能,图书信息维护功能内又包含图书的查询、修改与删除功能,图书信息管理功能图如图4-4所示。
图4-4图书信息管理功能
4.3数据库设计
该系统的最主要功能就是用户对数据进行相应功能的实现,想要对数据进行操作,就必须与存放学生信息的数据库进行连接,完整的数据库是对进行数据增删改查的重要前提。
在录入庞大的数据时难免会混淆数据的来源,为了避免和减少数据录入时的错误,系统数据库分别设置了用户表、图书类别表、图书信息表。
其中用户表是用来保存使用此系统用户的信息,具体表格设计如下:
表4-1用户表
是否为主键
字段名
字段类型
字段大小
说明
是
Id
Int
11
用户编号
否
userName
Varchar
20
用户名
否
Password
Varchar
20
用户密码
图书类别表主要来保存图书具体类别和类别详细信息,具体表格设计如下:
表4-2图书类别表
是否为主键
字段名
字段类型
字段大小
说明
是
Id
Int
11
图书编号
否
bookTypeName
Varchar
20
图书类别
否
bookTypeDesc
Varchar
1000
类别信息
图书信息表主要用来保存和录入图书的基本信息,如名称、作者、价格等,具体表格设计如下:
表4-3图书信息表
是否为主键
字段名
字段类型
字段大小
说明
是
Id
Int
11
图书编号
否
bookName
Varchar
20
图书名称
否
Author
Varchar
20
作者
否
Sex
Varchar
10
性别
否
Price
Float
价格
否
bookTypeId
Int
11
图书类别号
否
bookDesc
Varchar
1000
图书信息
5系统实现
5.1用户登录界面
当用户进入系统时,图书管理员根据自己的身份信息,输入具有唯一标识的用户名和密码,进行登陆;若输入出现错误,可清空数据,重新进行输入。
登录界面如图5-1所示,图书管理界面如5-2所示。
图5-1登陆界面
图5-2图书管理系统主界面
具体功能实现代码:
publicclassUserDao{
publicUserlogin(Connectioncon,Useruser)throwsException{
UserresultUser=null;
Stringsql="select*fromt_userwhereuserName=?
andpassword=?
";
PreparedStatementpstmt=con.prepareStatement(sql);
pstmt.setString(1,user.getUserName());
pstmt.setString(2,user.getPassword());
ResultSetrs=pstmt.executeQuery();
if(rs.next()){
resultUser=newUser();
resultUser.setId(rs.getInt("id"));
resultUser.setUserName(rs.getString("userName"));
resultUser.setPassword(rs.getString("password"));
}
returnresultUser;
}
5.2图书类别管理界面
图书类别管理界面包括对图书类别的添加与维护功能,为了页面的简洁性与操作的便利性,将图书类别的查询、修改与删除操作统一放在了维护功能内。
在图书类别添加界面,在添加完类别与类别的简单描述之后,数据库将通过insert语句,完成对图书类别的添加;在维护功能页面,数据库将通过select语句、update语句、delete语句分别对图书类别进行查询、修改、删除操作。
图书类别添加界面如图5-3所示,图书类别维护界面如图5-4所示。
图5-3图书类别添加界面
图5-4图书类别维护界面
具体功能实现代码:
publicclassBookTypeDao{
publicintadd(Connectioncon,BookTypebookType)throwsException{
Stringsql="insertintot_bookTypevalues(null,?
?
)";
PreparedStatementpstmt=con.prepareStatement(sql);
pstmt.setString(1,bookType.getBookTypeName());
pstmt.setString(2,bookType.getBookTypeDesc());
returnpstmt.executeUpdate();
}
publicResultSetlist(Connectioncon,BookTypebookType)throwsException{
StringBuffersb=newStringBuffer("select*fromt_bookType");
if(StringUtil.isNotEmpty(bookType.getBookTypeName())){
sb.append("andbookTypeNamelike'%"+bookType.getBookTypeName()+"%'");
}
PreparedStatementpstmt=con.prepareStatement(sb.toString().replaceFirst("and","wher