基于Java的图书管理系统

目 录

中文摘要 1
英文摘要 2
1 绪论 3
1.1 课题背景 3
1.2 研究意义 3
1.3 研究内容和章节结构 3
2 系统开发相关技术 5
2.1 Java语言 5
2.2 Java EE相关介绍 5
2.3 Eclipse相关介绍 6
2.4 MySQL相关介绍 6
2.5 JDBC关介绍 7
3 需求分析 8
3.1 可行性分析 8
3.1.1 技术可行性 8
3.1.2 经济可行性 8
3.1.3 操作可行性 8
3.2 功能需求分析 9
3.2.1 用户登录模块 9
3.2.2 图书类别管理模块 9
3.2.3 图书信息管理模块 10
3.3 非功能需求分析 11
3.3.1 安全性需求 11
3.3.2 硬件需求 11
3.3.3 维护需求 11
4 系统设计 12
4.1 系统结构设计 12
4.2 系统功能设计 12
4.2.1 登陆功能 12
4.2.3 图书信息管理功能 13
4.3 数据库设计 14
5 系统实现 15
5.1 用户登录界面 15
5.2 图书类别管理界面 16
5.3 图书信息管理界面 18
5.4 功能界面实现原理 21
5.5 数据库实现 21
6 系统测试 23
6.1 用户登录测试 23
6.2 图书类别管理测试 23
6.3 图书信息管理测试 24
7 总结与展望 25
7.1 总结 25
7.2 展望 25
参 考 文 献 26
致 谢 27

摘 要

现代大多数学校图书藏量种类繁多,各种类别的图书没有一个统一的管理平台,不同类别的图书区分上容易混淆,同种类别的图书入馆出馆记录困难。因此,开发此款软件成功解决了上述问题。
图书管理系统更注重轻量化,管理人员只需进行简单操作,即可完成图书类别的增删改查操作和同种类别下图书的增删改查操作。
这是一款以C/S为架构方式、采用Eclipse为开发环境、利用Sqlyog作为数据库服务器、并基于Java语言开发的图书管理系统。本系统具有运行速度快、安全性高、移植性强等特点。

关键词:图书管理;Java;数据库;

Book Management System Based On Java
Abstract

Most modern school books reserve phyletic and various, various types of books without a unified management platform, different categories of books to distinguish easily confused, with difficult categories of books in the library the library record. Therefore, the development of this software successfully solved the above problems.
The book management system pays more attention to the light quantization, the management personnel only need to carry out the simple operation, can complete the increase, delete, change and check operation of the book category and the increase, delete, change and search operation of the book under the same category.
This is a book management system using Eclipse as the development environment, Sqlyog as the database server, and based on the Java language. This system has the characteristics of fast running speed, high security and strong portability.

Key words: book management; Java; Database

1绪论

1.1 课题背景
自从进入二十一世纪后,飞鸽传书、快马加鞭的书信方式的信息传递途径退出了历史的舞台;信息化、电子化的信息交流方式随着计算机科学的发展成为人类文明进步的重大推动器,计算机科学也被应用到了我们的日常生活中的每一个领域。
图书馆在我们的大学生活中扮演着重要的角色,学生们在此借阅图书、学习、交流。传统的图书管理方式存在着许多缺点,例如:图书种类区分混乱,无法按类上架;馆内图书丢失时,不易发觉;学生在需要借阅图书时,需要图书管理员查找图书馆里是否拥有此书、是否已被借出等。
相比旧时期单纯靠人工对不同种类图书进行区分,对同种类图书进行入馆出馆记录,这不仅会增加图书管理员的劳动成本、不必要的工作负担,还会不可避免的出现信息记录错误、信息不易修改、信息丢失等传统管理制度上的缺。
1.2 研究意义
飞速发展的社会与计算机科学的变革有着密不可分的关系,高度信息化的今天,高效便捷快速成为人们所追求的一种工作方式,虽然计算机程序在各个方面让使用者体验到了其带来与传统管理模式所不可比拟的完成工作的方式,但有些程序操作起来复杂繁琐,这就使开发者不能根本的理解到程序在研究和开发时的初衷,一些用户不得不继续使用工作量庞大的手工作业;时间观念早已深入人心,所以图书管理系统为广大图书管理员带来了与以往的管理方式极大的不同使用体验。
图书管理系统可以根据用户对该系统功能的需要和所提供的数据,在操作界面实现对所有的图书信息的增添、删除,更改、查找功能,所以尽快实现图书管理信息化,规范图书管理制度是当今高校信息化发展的方向。
1.3 研究内容和章节结构
这是一款以C/S为架构方式、采用Eclipse为开发环境、利用MySql为数据库服务器、并基于Java语言开发的图书管理系统。
首先,通过前期调研,对图书管理员的需求进行详细分析,设计了图书管理系统的登录模块,图书类别管理模块,图书信息管理模块。
其次,根据详细的设计实现了图书管理员对图书分类的增删改查功能和对图书信息的增删改查功能。
最后,对图书管理系统进行测试,若测试结果与预期结果相符则测试通过,若不符,则还需对系统进行改进。
第1章主要讲述了图书管理系统课题的开发背景和意义。
第2章介绍了系统环境的搭建与开发过程中用到的主要技术。
第3章对图书管理系统进行需求分析,通过了解实际应用环境与图书管理员的需求,做了可行性分析与功能需求分析,确定了要开发的功能。
第4章主要是对要开发的系统做设计,把上个章节总结出来的结果进行分析再分解。把程序带入到系统设计的阶段。通过系统设计环节能够得出具体的实现方法。
第5章通过编写代码实现了前几章节中所提出的功能,并且将结果以流程图和实际效果图的方式进行展示,为系统的最终测试提供了测试项目。
第6章主要描述了针对该系统的测试。通过代码实现所完成的功能之后,需要对该系统进行针对性的测试。测试方法为黑盒测试,进行测试之后才能了解到某个功能的漏洞。

2系统开发相关技术

2.1 Java语言
Java语言是一种通过解释方式来执行的语言,其语法规则和C++类似。同时,它又是一种跨平台的程序设计语言。用Java语言编写的程序,可以在任何设备和平台上运行。
它在技术层面拥有较其他语言的通用性兼容性较强、高效性:在帮助人们摆脱繁重复杂的数据中体现了其顺应时代的节省时间精力的优越性、跨平台依靠数据库实现信息的移植性和稳定的安全性,在我们的日常生活中,例如个人电脑、各种大小的数据中心、甚至游戏的控制平台,和我国重点发展的超级计算机项目,和与我们平时交流随处可见的移动电话及互联网等等,他们都离不开Java语言。
Java最初的出现是为了各种消费式的电子产品的内嵌入式芯片而设计的,而后用来发设计互联网的应用程序;我们知道作为对计算机科学有革命性意义的c++语言在Java语言出现后,面临了强有力的冲击,在当今“云”技术和移动端电子产品的巨大需因求下,Java因其独有的优势形成的它广阔的应用前景和庞大的市场需求;与我们熟知的c、c++语言相比,Java的编程语言风格类似与前两者,而Java更是一种单纯的面向对象的程序编写设计语言,但与c、c++语言不同的是,Java语言摒弃了前者在编写时易引起错误的指针(被引用取代)、运算符的重载等一些特型,并且添加了回收无需在被引用的对象在内存中所占用的空间及垃圾回收功能,真正意义上的帮助程序编写员使其不再为了内存的管理费尽心思;Java拥有多方面的优势:跨平台性(在不相关的平台中,可以顺利运行)、面向对象性(使程序员可以集中精力于类的应用及设计上)、动态、健壮性、分布式。再进过现代最初程序设计的c,更进于c++,现在的Java通过对于前者的继承,拥有了使大家易接受的特性。
2.2 Java EE相关介绍
在我们编写jsp代码时,因为庞大的各种代码和各种各样的业务逻辑缠在一团,并且他们之间融嵌,对于程序的扩展和日常的维护有着极其不便的影响。每当业务需要不同更改时,对程序的编写员和完善设计的人都有着很大的工作负担。为此为了更好地对程序的进行维护和扩展,这时就需要JavaEE技术来对项目的进一步的开展研发;其中Java EE技术包括:表示层技术、中间层技术、数据层技术。作为Java2技术三大平台之一,它既继承了应用框架,他的出现不仅使程序的开发降低了成本,更重要的是其规避了C/S的缺点。它拥有三层结构,即用户层、应用层、数据库服务器,可以使用户所操作的界面及尽可能的变得简洁简单。
2.3 Eclipse相关介绍
Eclipse是一种支持跨平台的灵活的集成开发坏境,其本身也就是一个框架平台,它是基于Java语言的可以继续扩展的开发平台,虽然eclipse是使用Java语言进行的开发,但它不仅仅局限于对于Java语言的功能实现,我们所熟知的编程语言如:Android、c、c++等语言也可以使用;它也是开放源代码的软件,eclipse对不同的用户群体有不同的概念,对一些人来说,eclipse是一个免费的Java开发平台。 对另一部分人来说,eclipse是灵活的、能适应现有的开发语言和未来某种新语言的开发环境。对其他人来说,eclipse是一个完善的、能够布署高级的跟上时代的运行平台。
2.4 MySQL相关介绍
MYSQL是一种专门用来于数据库通信的语言。它有一下优点:使用成本低甚至免费,原因是因为它是开放源代码的;性能良好,执行速度快;简单易操作,很容易的就可以进行安装和使用。无论是对中小型项目的开发上,还是对世界知名网站的搭建上,MYSQL以它安全、稳定、高效等出色的性能使它成为当下最受人们喜爱的数据库管理系统,同时也在全球范围内得到了使用和安装[2]。
该系统由一家瑞典公司开发,是当下应用最广泛的关系型数据库管理系统之一。因为它性能的出色,也可匹配其他的系统共同工作,在开发程序中可提供较为便利稳定的环境;MySQL是一种关系数据库管理系统,而它与另外管理系统不同的是,在将数据存储时,它不是将数据统一的放在同一个数据库当中,而是存放在不同的独立的表之中这种独特的存储方式使其拥有了更加灵活的性能,并大大的加快了运行的速度;MySQL所使用的语言是在访问数据库时最标准的语言,也是我们在平时建立与数据库连接时最常用的语言。它时引用c语言和c++语言编写的,并且可以使用不同的编译器对其进行测试,这样的方式使它拥有了最原始代码可以灵活移植的特性;又因为MySQL在与其他操作系统可以轻易的实现建立且需要费用几乎为零,所以正是因为它这种开放源码的软件,使它拥有了其他大型数据库所没有的亲民度。
Sqlyog是一种拥有整洁清理规划,性能出众的图形化对于MySQL数据库系统的管理工具,这种工具的使用,可以使我们在全球任意一个通有互联网的设备中来随时随地的远程维护MySQL数据库系统;它拥有建立数据库,删除数据库,索引管理,监察数据库并对其进行修护分析,创建数据库日志等一系列对于管理MySQL数据库的功能,可以近乎完美相契合。
2.5 JDBC关介绍
拥有了数据库和相关应用程序后,为了实现两者的连接,就需要使用JDBC作为接口将数据库中的数据与面向对象的应用程序搭建联系起来;JDBC全称是Java数据库连接标准,同时它也是Java核心类库的一部分,目前共有四类JDBC驱动:
一: native-API, partly Java driver
此种驱动不适合连接数据库,因为使用此种驱动的前提是与其相连的客户端机器必须拥有配套的二进制代码。
二:native protocol, pure Java driver
此种驱动适用于以网络为关系纽带连接数据库,因为这种驱动不仅能够在没有客户端软件的情况下使用,还可以将JDBC的调用变为网络协议供后台数据库使用。
三:JDBC-ODBC bridge driver
此种驱动只适用于数据库使用ODBC驱动的客户端。因为它不仅与Java兼容性差,还需要使用这类驱动的客户端安装与其对应的ODBC驱动。
四:JDBC-Net pure Java driver
此种驱动适用于含有中间件的分布式应用。因为它能够将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:Genuine Inter® CPU T2080 @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 图书管理系统主界面
具体功能实现代码:
public class UserDao {
public User login(Connection con,User user)throws Exception{
User resultUser=null;
String sql=“select * from t_user where userName=? and password=?”;
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, user.getUserName());
pstmt.setString(2, user.getPassword());
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
resultUser=new User();
resultUser.setId(rs.getInt(“id”));
resultUser.setUserName(rs.getString(“userName”));
resultUser.setPassword(rs.getString(“password”));
}
return resultUser;
}
5.2 图书类别管理界面
图书类别管理界面包括对图书类别的添加与维护功能,为了页面的简洁性与操作的便利性,将图书类别的查询、修改与删除操作统一放在了维护功能内。在图书类别添加界面,在添加完类别与类别的简单描述之后,数据库将通过insert语句,完成对图书类别的添加;在维护功能页面,数据库将通过select语句、update语句、delete语句分别对图书类别进行查询、修改、删除操作。图书类别添加界面如图5-3所示,图书类别维护界面如图5-4所示。
在这里插入图片描述

图5-3 图书类别添加界面
在这里插入图片描述

图5-4 图书类别维护界面
具体功能实现代码:
public class BookTypeDao {
public int add(Connection con,BookType bookType)throws Exception{
String sql=“insert into t_bookType values(null,?,?)”;
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, bookType.getBookTypeName());
pstmt.setString(2, bookType.getBookTypeDesc());
return pstmt.executeUpdate();
}
public ResultSet list(Connection con,BookType bookType)throws Exception{
StringBuffer sb=new StringBuffer(“select * from t_bookType”);
if(StringUtil.isNotEmpty(bookType.getBookTypeName())){
sb.append(" and bookTypeName like ‘%“+bookType.getBookTypeName()+”%’");
}
PreparedStatement pstmt=con.prepareStatement(sb.toString().replaceFirst(“and”, “where”));
return pstmt.executeQuery();
}
public int delete(Connection con,String id)throws Exception{
String sql=“delete from t_bookType where id=?”;
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
return pstmt.executeUpdate();
}
public int update(Connection con,BookType bookType)throws Exception{
String sql=“update t_bookType set bookTypeName=?,bookTypeDesc=? where id=?”;
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, bookType.getBookTypeName());
pstmt.setString(2, bookType.getBookTypeDesc());
pstmt.setInt(3, bookType.getId());
return pstmt.executeUpdate();
}
}
5.3 图书信息管理界面
图书信息管理界面包括对图书信息的添加与维护功能,为了页面的简洁性与操作的便利性,将图书信息的查询、修改与删除操作统一放在了维护功能内。在图书信息添加界面,在添加完图书的名称、作者、价格等信息后,数据库将通过insert语句,完成对图书信息的添加;在维护功能页面,数据库将通过select语句、update语句、delete语句分别对图书信息进行查询、修改、删除操作,图书信息添加界面如图5-5所示,图书信息维护界面如图5-6所示。
在这里插入图片描述

图5-5 图书信息添加界面
在这里插入图片描述

图5-6 图书信息维护界面
具体功能实现代码:
public class BookDao {
public int add(Connection con,Book book)throws Exception{
String sql=“insert into t_book values(null,?,?,?,?,?,?)”;
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, book.getBookName());
pstmt.setString(2, book.getAuthor());
pstmt.setString(3, book.getSex());
pstmt.setFloat(4, book.getPrice());
pstmt.setInt(5, book.getBookTypeId());
pstmt.setString(6, book.getBookDesc());
return pstmt.executeUpdate();
}
public ResultSet list(Connection con,Book book)throws Exception{
StringBuffer sb=new StringBuffer(“select * from t_book b,t_bookType bt where b.bookTypeId=bt.id”);
if(StringUtil.isNotEmpty(book.getBookName())){
sb.append(" and b.bookName like ‘%“+book.getBookName()+”%’“);
}
if(StringUtil.isNotEmpty(book.getAuthor())){
sb.append(” and b.author like ‘%“+book.getAuthor()+”%’“);
}
if(book.getBookTypeId()!=null && book.getBookTypeId()!=-1){
sb.append(” and b.bookTypeId="+book.getBookTypeId());
}
PreparedStatement pstmt=con.prepareStatement(sb.toString());
return pstmt.executeQuery();
}
public int delete(Connection con,String id)throws Exception{
String sql=“delete from t_book where id=?”;
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
return pstmt.executeUpdate();
}
public int update(Connection con,Book book)throws Exception{
String sql=“update t_book set bookName=?,author=?,sex=?,price=?,bookDesc=?,bookTypeId=? where id=?”;
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, book.getBookName());
pstmt.setString(2, book.getAuthor());
pstmt.setString(3, book.getSex());
pstmt.setFloat(4, book.getPrice());
pstmt.setString(5, book.getBookDesc());
pstmt.setInt(6, book.getBookTypeId());
pstmt.setInt(7, book.getId());
return pstmt.executeUpdate();
}
}
5.4 功能界面实现原理
系统整体使用swing框架,若要主界面添加菜单,则需要添加菜单空间menu和标签控件lable,然后在init方法内设置各项属性即可;若要在原窗体内添加对象,则需先在init方法里添加所需控件,然后实例化对象,最后用代码设置各项属性;若要添加一个弹出式窗体,则先需将菜单项做好,加入一个监听事件处理器,被弹出窗体要以新建源文件的形式编写(新建Java类),并添加一个事件处理方法,然后在构造方法里调用动态加载的init方法,,再在这个动态加载方法里添加要显示的内容即可。
5.5 数据库实现
系统与数据库的成功连接和搭建,是该系统能够顺利实现其各个模块功能的重要环节,这个环节中利用Sqlyog建立连接并新建用户表、图书类别管理表、图书信息管理表后,再通过使用JDBC等各项技术,实现了系统与数据库的连接,具体代码如下:
public class DbUtil {
private String dbUrl=“jdbc:mysql://localhost:3306/db_book”;
private String dbUserName=“root”;
private String dbPassword=“123456”;
private String jdbcName=“com.mysql.jdbc.Driver”;
public Connection getCon()throws Exception{
Class.forName(jdbcName);
Connection con=DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
return con;
}
public void closeCon(Connection con)throws Exception{
if(con!=null){
con.close();
}
}
public static void main(String[] args) {
DbUtil dbUtil=new DbUtil();
try {
dbUtil.getCon();
System.out.println(“数据库连接成功!”);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(“数据库连接失败”);
}
}

}
通过连接池,建立与数据库的连接,为了避免存储空间的浪费,在程序运行结束后,连接池关闭。

6系统测试

为了检查系统的可行性和功能模块是否可以顺利运行,本次采用黑盒测试(即动态测试)来对此系统进行测试,这种测试方法较其他方法较为简单,不需要知道系统内部的运行原理,仅仅通过输入数据和输出对应的结果就可以知道系统的运行是否达到预期目标。
6.1 用户登录测试
在输入正确的用户名与密码、用户名与密码不匹配或不输入用户与密码的情况下,若测试结果均与预期相符,则测试通过。具体测试情况如表5-1所示。
表6-1 用户登录测试
功能项 测试内容 预期结果 测试结果
登录 用户名:xxx
密 码:666666 系统提示用户名或密码错误 通过
用户名:hxy
密 码:123456 系统提示用户名或密码错误 通过
用户名:hxy
密 码:666666
不输入用户名
密 码:admin
用户名:hxy
不输入密码 成功登录系统主页面

系统提示请输入正确用户名

系统提示请输入密码 通过

通过

通过
6.2图书类别管理测试
在添加图书类别、查询图书类别、修改图书类别与删除图书类别的操作下,若测试结果均与预期相符,则测试通过。具体测试情况如表5-2所示。
表6-2 图书类别管理测试
功能项 测试内容 预期结果 测试结果
类别添加

类别查询

类别修改

类别删除 名称:Java类
描述: 系统提示类别添加成功 通过
名称:
描述:xxx 系统提示类别添加失败 通过
名称:Java类
描述:Java相关技术
名称:Java类
名称:J类
修改前:Java类
修改后:JavaⅠ类
名称:JavaⅠ类 系统提示类别添加成功

显示查询结果
不显示查询结果
修改成功

删除成功 通过

通过
通过
通过

通过
6.3图书信息管理测试
在添加图书信息、查询图书信息、修改图书信息与删除图书信息的操作下,若测试结果均与预期相符,则测试通过。具体测试情况如表5-3所示。
表6-3 图书信息管理测试
功能项 测试内容 预期结果 测试结果
信息添加

信息查询

信息修改

信息删除 名称:大数据
作者: 系统提示信息添加失败 通过
价格:
描述:

名称:大数据

作者:张华
价格:
描述:
名称:大数据
作者:张华
价格:32
描述:
名称:大数据
名称:系统维护
修改前:大数据
修改后:大数据进阶
名称:大数据进阶 系统提示类别添加失败

系统提示信息添加成功

系统显示图书信息
系统不显示图书信息
系统提示修改成功

系统提示删除成功 通过

通过

通过
通过
通过

通过

7总结与展望

7.1 总结
经过不断的功能调试,系统最终实现了预期的全部功能,在后期的系统优化过程中,遇到了现有水平无法解决的难题,如无法实现书籍扫码功能、无法打印书籍清单等,我相信在日后的学习过程中,能够解决这些难题,并继续优化系统,争取早日将图书管理系统应用在日常生活当中。
7.2 展望
在日后的学习过程中,能够对该系统加入以下功能:
(1)增加书籍扫码功能,可以实现扫码即知图书相关信息并一键录入系统。
(2)增加打印功能,实现打印当日清单、周清单、月清单、季度清单等功能。

参 考 文 献

致 谢

四年的大学时光飞快,在高崎导师的帮助和小组其他两位同学的共同努力和在不断完善中,我们的学生管理系统得到了实现。从17年年底的毕业设计的选题一直到现在即将参与论文答辩前夕,这四五个月在高老师的耐心指导和对不解问题的细致讲解下,我顺利的完成了论文与设计的制作和编写。匆匆的包医学习生涯也即将画上圆满的句号,奔波于宿舍与计算机楼的时光也将会一去不返。高老师的教导为我以后继续学习和步入社会以及以后进入工作岗位有着至关重要的作用。
在这个系统的制作编写过程中,老师和同学的帮助及合作对我来说获益匪浅,从查询资料的各种方法途径的获得,到编写程序导师的亲自指导,和最后系统的不断修改和完善,从中不仅仅汲取的是该领域的专业知识和制作系统的经验,而且得到的还有的是学习的思路,做事严谨的态度和紧密的逻辑。
漫漫学习生涯在包医的四年或许即将结束,但是人生的学习生涯也许才刚刚开始,感谢在我们计算机系老师的不断督促中前进,在同学舍友的帮助在度过这人生的迈向社会的起点;也希望这次所制作的图书管理系统在不久的将来可以在我系的学生和老师的多方改进和完善后在我校的公寓管理系统中得以运用。
最后感谢这次的制作系统经历,祝愿我计算机系今后在母校的扶植和我们的不断奋进中砥砺前行。

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值