JAVA+SQL实训报告-- 图书馆管理系统

JAVA+SQL实训报告

  题    目:   图书馆管理系统
  院 (系):    
  专  业: 
  学生姓名:     
  学    号:     
  指导教师:  
  时    间:                      







                                              摘    要  
  图书馆管理系统是学校管理机制中重要的一环。图书馆代表着一间学校或者地区的文化标志。因为图书馆丰富的图书资源能够带给我们重要并且优越的学习资源。通过对图书管理系统的运行管理机制进行调查研究,开发了此图书系统。本系统中解决了学校图书管理事务中的常用基本问题以及相关统计工作。本系统中包含6个功能模块:系统设置,读者管理,图书管理,图书借还,系统查询和更改口令。本系统采用JAVA+SQL server2005开发,使用C/S设计模式,采用了Eclipse开发平台,是目前较为流行的系统开发工具,并且功能易于实现,对接口的实现更为简便,对数据的存储和安全有一定保障,使用图形化界面,让整个系统更易使用。 

关键词:JAVA 、SQL、接口、图形化、图书馆

目 录
摘 要 - 1 -1
实训目的 - 3 -2
开发背景 - 3 -3
需求分析 - 3 -4
系统设计 - 3 -4.1
系统目标 - 4 -4.2
系统功能结构 - 4 -4.3
系统文件结构 - 4 -4.4
系统类结构 - 5 -5
数据库设计 - 6 -5.1
数据库概要说明 - 6 -5.2
数据库概念及逻辑设计 - 6 -5.2.1
图书信息实体逻辑 - 6 -5.2.2
读者信息实体逻辑 - 7 -5.2.3
图书借阅信息实体逻辑 - 8 -5.2.4
图书分类实体逻辑 - 8 -5.2.5
图书订购实体逻辑 - 9 -5.2.6
管理员实体逻辑 - 9 -5.2.7
图书库存实体逻辑 - 10 -6
模块设计 - 10 -6.1
公共模块设计 - 11 -6.1.1
数据库连接操作类 - 11 -6.1.2
菜单选项接口类 - 13 -6.1.3
组合框索引与内容类 - 14 -6.1.4
JLable上图片添加类 - 16 -6.2
主窗体设计 - 17 -6.2.1
主窗体技术分析 - 17 -6.2.2
主窗体的实现过程 - 17 -6.3
登录模块设计 - 19 -6.4
图书信息管理模块设计 - 21 -6.4.1
图书信息添加实现 - 21 -6.4.2
图书信息修改 - 22 -6.5
图书借还模块设计 - 25 -6.5.1
图书借阅实现 - 25 -6.5.2
图书还书实现 - 26 -6.6
图书查询模块设计 - 27 -7
部分功能界面展示 - 27 -8
心得体会 - 29 - - 29 -9
附录 - 30 -9.1
参考文献 - 30 - 1

1.实训目的
1.掌握流行的信息系统开发方法
2.提高综合运用所学知识进行信息系统开发的能力
3. 提高使用Java语言进行编程的能力
4. 提高学生使用数据库技术解决现实问题的能力
5. 将Java与SQL相结合,提高大家进行综合开发的能力。

2 开发背景
图书馆是一个能提供良好阅读、学习的空间,不论是在中小学还是各大高校,图书馆是学校资源中缺一不可的。随着读者数量的增加,图书馆的规模随之扩大,图书数量也相应增长,更多类别的图书也成倍增长。面对如此庞大的数据量,能够有一套完整、规范、实用的图书馆管理系统是非常有必要的,能够对图书信息以及读者信息进行有效的管理。因此,开发一套图书管理系统是非常有必要的。3 需求分析图书馆管理系统是图书馆管理工作中不可缺少的部分,要能够有效的、快速的管理图书信息,有便捷的操作以及美观的界面,
本系统应该具有以下特点:
l 具有良好的系统性能,友好的用户界面。
l 较高的处理效率,便于使用和维护。
l 尽可能简化图书管理员的重复工作,提高工作效率。
l 图书基本信息的管理------l 读者基本信息的管理。l 借还书的基本管理。l 操作员信息以及安全性管理。

4 系统设计

4.1 系统目标根据需求分析,该系统应达到一下目标:
l 界面设计友好、美观。
l 信息分类清晰、准确。
l 系统安全、稳定。
l 数据存储安全、可靠。
l 操作简单易用、数据查询灵活。
4.2 系统功能结构图书管理系统分为四大功能模块,
分别为:基础数据维护、图书借阅管理、新书订购、系统维护。
各个部分及功能模块结构图如图1.1所示。
图1.1 图书管理系统功能结构
4.3 系统文件结构在开始编写程序代码之前,将系统中可能用到的文件夹先创建出来,这样不但方便以后的开发工作,也可以规范系统的整体构架。本图书馆管理系统设计了

如下图1.2所示的文件夹组织结构。

1.2 图书馆管理系统文件结构

4.4 系统类结构在系统中为每个模块创建了不同的包,每个包里包含各个操作功能实现的类,如下图1.3所示

图1.3系统类信息5

数据库设计5.1

数据库概要说明采用SQL Server 2005来满足本系统需求。SQL Server 2005具有很强的完整性,有较高的性能和较低的价格,实现成本低,易于满足要求。该系统数据表树形结构如图1.4所示。 图1.4数据表树形结构5.2 数据库概念及逻辑设计 5.2.1图书信息实体逻辑图书信息实体包括图书编号、类别编号、书名、作者、译者、价格、出版社、出版时间属性。

图书信息实体的E-R图如图1.5所示。

图1.5 图书信息实体E-R图

根据设计好的E-R在数据库中创建数据表tb_bookinfo。如表1.1所示。

字段名数据类型长度主键功能描述ISBNvarchar13是图书编号typeIdint 图书类别编号booknamevarchar40 书名writervarchar21 作者translatorvarchar30 译者publishervarchar50 出版社datesmalldatetime 出版时间pricemoney 价格表1.1 图书信息表5.2.2读者信息实体逻辑读者信息实体包括姓名、条形码、性别、年龄、电话、押金、生日、职业、证件号码、证件类型、办证日期等属性。

读者信息实体的E-R图如图1.6所示。

图1.6 读者信息实体E-R图

根据设计好的E-R在数据库中创建数据表tb_reader。如表1.2所示。
字段名数据类型长度主键功能描述namevarchar13 姓名Sexvarchar2 性别Ageint4 年龄identityCardvarchar30 证件号码datedatetime8 生日maxNumint4 最大借书量telvarchar50 电话keepMoneymoney8 押金zjint4 证件类型zyvarchar50 职业ISBNvarchar13是条形码bztimedatetime8 办证日期表1.2 读者信息表5.2.3图书借阅信息实体逻辑图书借阅实体包括图书编号、编号、读者编号、管理员编号、是否归还、借阅日期、归还日期等属性。图书借阅信息实体的E-R图如图1.7所示。

图1.7 图书借阅信息实体E-R图

根据设计好的E-R在数据库中创建数据表tb_borrow。如表1.3所示。字段名数据类型长度主键功能描述idint4是编号bookISBNvarchar13 图书编号operatorIDint4 管理员编号readerISBNvarchar13 读者编号isbackint4 是否归还borrowDatedatetime8 借阅日期backDatedatetime8 归还日期表1.3 图书借阅表5.2.4图书分类实体逻辑图书实体分类包括编号、类别名称、可借天数等信息。
如图1.8所示。

图1.8 图书分类实体E-R图

根据设计好的E-R在数据库中创建数据表tb_bookType。
如表1.4所示。

字段名数据类型长度主键功能描述IdInt4是编号typeNameVarchar20 类别名称DaysInt4 可借天数fkFloat8 罚款金额表1.4 图书分类

表5.2.5图书订购实体逻辑图书订购实体逻辑主要包括图书编号、订购日期、订购数量、管理员、是否验收、折扣属性。
图书订购以图书编号与图书信息实体实体之间建立了关系。图书订购实体E-R图如1.9所示。

图1.9 图书订购实体E-R图 根据设计好的E-R在数据库中创建数据表tb_orde。

如表1.5所示。字段名数据类型长度主键功能描述ISBNvarchar10是图书编号datedatetime8 订购日期numberint4 订购数量operatorvarchar6 管理员cheekAndAcceptint4 是否验收zkfloat8 折扣

表1.5 图书订购表5.2.6管理员实体逻辑管理员实体主要包括编号、姓名、性别、年龄、身份证号、工作日期、电话、密码属性。管理员实体信息E-R图如2.1所示。

图2.1 管理员实体E-R图 根据设计好的E-R在数据库中创建数据表tb_operator。

如表1.6所示。字段名数据类型长度主键功能描述idint4是编号namevarchar12 姓名sexvarchar2 性别ageint4 年龄identityCardvarchar30 身份证号workdatedatetime8 工作日期telvarchar50 电话passwordvarchar10 密码

表1.6 管理员信息表5.2.7

图书库存实体逻辑库存信息实体主要包括编号、库存数量属性。库存信息实体以库存编号与图书信息实体建立了关系。

库存信息实体的E-R图如图2.2所示。

图2.2 库存信息实体E-R图 根据设计好的E-R在数据库中创建数据表tb_stockpile。

如表1.7所示。字段名数据类型长度主键功能描述ISBNvarchar13 编号amountint4 库存数量表1.7 库存信息表6 模块设计一个功能完善的管理系统必定会有一定数量的模块,在系统开发之前就已经将每个模块的功能划分好。在进行代码设计时,将每一个功能实现的代码逐一写出来,每个模块的功能逐步完善。最后将所有子模块合为一个大整体。下面将对每一个模块进行逐步的设计。

6.1公共模块设计在开发过程中,

经常会用到一些公共模块,例如数据库连接类、数据操作类、窗体动作类、为按钮添加图标类等。开发之前首先要设计这些公共模块,能够简化开发的步骤,有利于提高系统开发的效率。下面介绍图书馆管理系统中公共模块的设计过程。

6.1.1数据库连接操作类数据库连接及操作类一般包含连接数据库的方法getConnection()、执行查询executeQuery()、执行更新操作的方法executeUpdate()、关闭数据库连接的方法close()。下面介绍部分对数据库的操作,将数据库操作的连接及操作类Database.java装在tsg.base包中。
具体步骤如下。
**(1)**在Database()类中,导入所需的类包,关键代码如下
:package tsg.base; //指定类的包名称
import java.sql.Connection; //导入数据库连接是所需的类
import java.sql.Date;import java.sql.DriverManager; //sql驱动管理类import java.sql.ResultSet;import java.sql.SQLException; //进行数据库操作时捕捉异常的类import java.util.ArrayList;

**(2)**在Database()类的构造方法中创建数据库连接操作。
在此类中首先要定义数据库连接驱动包名、数据库连接路径、数据库连接用户名、密码、端口号等静态变量,然后再构造函数中实现数据库连接操作。关键代码如下:
public class Database {//定义驱动包名称
protected static String dbClassName = “com.microsoft.sqlserver.jdbc.SQLServerDriver”;
protected static String dbUrl = “jdbc:sqlserver://localhost:1104;” + “DatabaseName=db_library;SelectMethod=Cursor”;//定义数据库连接路径
protected static String dbUser = “sa”; //定义数据库连接用户名
protected static String dbPwd = “123456”; //定义数据库连接密码
protected static String second = null;
private static Connection conn = null; //定义一个数据库连接
private Database() {
try { //捕捉数据库异常函数
if (conn == null) { //如果连接为空 Class.forName(dbClassName).newInstance();//装载SQL Server驱动
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
}
else
//如果连接不为空,则返回
return;
}
catch (Exception ee) {
ee.printStackTrace();
} }

**(3)**创建执行查询语句等等方法executeQuery(),返回值为ResultSet结果集。首先需要初始化Database对象,调用构造函数,获取数据库连接。关键代码如下:private static ResultSet executeQuery(String sql) { try

你可能感兴趣的:(JAVA)