1、目 录1 引言 .31.1 图书管理的现状 .31.2 现有图书管理系统的概述 .41.3 选题的目的、意义 .41.4 图书管理系统的可行性分析 .51.5 系统开发运行环境 .5第二章 本系统开发相关技术介绍 .62.1 java.62.2 MySql.82.3 Struts2 .92.4 Hibernate.102.5 C/S 结构 .102.6 Web 服务器 .12第三章 系统总体设计分析 .123.1 系统需求分析 .123.2 系统实现的目标 .133.3 系统功能模块设计 .133.4 系统功能结构图 .133.5 系统流程图 .16第四章 数据总体结构设计 .174.1 数据
2、库概念结构设计 .174.2 数据库逻辑结构设计 .184.3 图书管理系统的系统 E-R 图 .204.4 数据表设计 .21第五章 图书管理系统详细设计 .235.1 系统流程分析 .235.2 主要模块的运行 .235.2.1 登陆界面 .235.2.2 图书信息管理模块 .245.2.3 图书借还信息模块 .255.3 系统开发的遇到的相关问题及解决 .265.3.1 图书管理系统索引 .265.3.2 如何验证输入的字符串 .265.3.3 自动计算图书归还日期 .275.3.4 系统登陆验证码的实现 .27第六章 结论 .306.1 主要研究内容及成果 .316.2 今后进一步研究
3、方向 .31参考文献 .31学校图书管理系统的开发摘 要当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。由于信息技术的发展,许多行业在经营管理过程中对计算机技术的依赖程度也不断增强。在对 JSP 语言,SQL Server2000 数据库技术以及当今社会的出租车行业的需求进行了较深入的学习和调查的基础上,设计出了该出租车管理系统,该系统主要实现了图书管理,用户信息及管理信息的管理同时在书籍信息管理中还包括车辆的更新,书籍的过户和
4、监督卡管理等功能。本论文主要阐述了书籍管理系统的需求分析,功能模块划分,数据库模式分析,并具此设计了基于 c/S 模式的数据库结构和 JSP 程序.关键词:JSP, SQL Server2000, ODBC, JavaBeanAbstractThe ages is the information ages which flies to soon develop nowadays.Can not get away from an information processing in every trade, this is extensively exactly the environment t
5、hat the calculator is been apply in an information to manage system.The biggest advantage of calculator lies in making use of it and can carry on an information management.Use the calculator carries on an information control and not only raised a work efficiency, but also consumedly raised its safet
6、y.Because of the information technical development, many professions are in the process of conducting a management in also continuously strengthen to the calculator technical dependence degree.At to the JSP language, the SQL database technique of the Server2000 and social nowadays of rented the need
7、 of garage industry to carry on more thorough study and investigate of foundation up, designing should rent car management system, that system mainly carried out a vehicle information, the management of executive information and driver information still includes the renewal of the vehicle in the veh
8、icle information the management in the meantime, transfer ownership of vehicle with direct card management etc. function.This thesis mainly elaborated a for-rent car management the need analysis of the system, function mold piece divide the line, database mode analysis, and have this database struct
9、ure and JSP procedure which designs mode according to the B/S.Keyword:JSP, SQL Server2000, ODBC, JavaBean1 引言随着计算机及网络技术的飞速发展,Internet/Intranet 应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息系统的作用也越来越大。图书馆在正常运营中总是面对大量的读者信息,书籍信息以及由两者相互作用产生的借书信息,还书信息。因此图书管理信息化是发展的必然趋势。用结构化系统分析与设计的方法,建立一套有效的图书信息管理系统,可以减轻工作,将工作科学化、规范化,提
10、高了图书馆信息管理的工作质量因此根据图书馆目前实际的管理情况开发一套图书管理系统是十分必要的。1.1 图书管理的现状一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。在计算机尚未在图书管理系统广泛使用之前,借书和还书过程主要依靠手工。一个最典型的手工处理还书过程就是:读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。这样借书过程就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样
11、还书过程就完成了。随着近年来信息技术及计算机网络技术的不断发展, 图书馆也先从传统的图书馆发展到自动化图书馆,再发展到今天的数字图书馆,这些变化使得图书馆的形象越来越现代化,人们查找资料也更加方便。对于一些小图书馆和一些图书室来说,由于工作人员比较少,长期以来,作为图书馆的主要工作图书借阅一直未能很好地开展。在平常的图书借阅工作中, 由于大部分读者不熟悉图书馆藏书,且对图书排架分类的不了解,往往花费很长时间才能找到其所需的书。为提高管理效率,更好地为读者服务,利用已有的办公局域网络条件,将馆藏书籍做成基于 WEB 的查询系统,实现图书在一个单位的网络内甚至 Internet 上查询,可使图书查
12、询和借阅变得更加方便快捷,从而使图书室的工作效率得到明显提高。传统的图书管理模式其最大的特点是手工;首先要把买来的图书资料登记到资料本上,再给每本书分类贴上标签及制作和标签相对应的图书分类卡片,最后把图书分类卡片按类别分别放置在文件柜里。对于有学生(教师)证的学生(教师)来说还要对他们资料作一定的记录。并且在人们来借书的时候,首先持证件者要去存放图书分类卡片的文件柜里查找想借的书是否在架,如果卡片存在,再按照图书分类卡片在相应的书架上找到需要的图书,然后登记持证件者的借还书时间和在书签条上写下借还书记录,之后把借书证留在那里;还书的时候,相对应的消去出借记录;这样做起来比较麻烦,比较费时间。传
13、统图书管理的特点是一直以来,中小型书店、中小学的小型图书馆及各高校图书馆和资料室使用传统的人工方式管理图书档案、会员档案。这种管理方式存在着诸多缺点,如:手续繁琐、工作量大、效率低下、出错率高等,同时给对大量资料的查询、更新及维护都带来不少困难。1.2 现有图书管理系统的概述在试用了一些个图书管理系统和查阅了大量相关资料文献的基础上,发现那些系统在几个方面已经不符合时代的要求,由于设计人员及其所用的工具的不同,有 Visual Basic6.0、Visual ForPro6.0、Power Builder 等,再加上这些图书管理系统设计的时间也不一样,所用具体场合也有区别,因此在功能上除了图书
14、资料管理所需的基本功能之外也有所不同。经过比较总结他们都实现了以下图书管理的基本功能:1、图书检索模块:是图书管理系统的重要模块之一,是读者快速查询图书的途径。2、图书管理模块:是图书管理员操作模块,读者是无权进入的。本模块由借出图书登记、归还图书登记和续借图书登记子模块构成。3、数据维护模块:是由图书管理员控制的模块,它由增加、修改和删除读者,增加、修改删除图书,浏览修改读者、浏览修改图书等程序组成。 4、数据统计模块:由读者统计、图书统计、借出图书分类统计、到期末归还图书读者统计几部分组成。这些系统解决了以前的那种管理方式所存在着的诸如手续繁琐、工作量大、效率低下、出错率高等缺点,设计出的
15、系统能使读者快速检索到自己喜爱的书,图书管理员能减轻工作量。但是鉴于开发工具和开发当时的科技发展水平所限,再加上历史发展到今天,人们的生活环境已经发生了改变,大家对于图书查询这方面的要求也更高。比如在一个局域网内,大家希望能在本台电脑上就能查找自己想要的图书,而不用跑到图书馆或图书室里去用那里的电脑查询,这就需要一个网络化的联机查询系统。1.3 选题的目的、意义 随着社会的进步,信息技术的广泛应用,数字化管理的优势日趋显著。针对中小型图书馆或图书室管理落后的情况,设计实现一个图书信息管理系统,通过与计算机的结合使用对中小型图书馆或图书室的各种图书信息进行管理可以给管理员和用户带来以下不同的方便
16、:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高工作效率,也是图书馆等部门管理科学化、正规化的重要标志之一。而且计算机管理的成本不断降低。因此,开发一套这样的中小型图书管理软件已经很有必要,并且实现研究服务于实践的原则。1.4 图书管理系统的可行性分析本次毕业设计题目:“学校图书管理系统的开发”主要目的是利用数据库软件编制一个管理软件,用以实现图书、读者以及日常工作等多项管理。同时对整个系统的分析、设计过程给出一个完整论证。图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会
17、为管理者对图书管理系统提供极大的帮助。本系统的设计主要从以下几方面做起:系统业务流程分析、系统的功能设计、系统的数据库结构设计等。作这些工作需对数据库知识有足够认识,并深入的了解 Java的使用和管理系统的相关知识。在信息时代的今天,人类需要对在政治、经济、军事、文化、科研、教育等领域产生的大量信息进行管理,并对数据进行加工处理,数据库技术则是信息管理与数据处理的先进技术。随着信息量的不断增加,作为计算机的三大主要应用(科学计算、过程控制和数据处理)之一的数据处理,已迅速上升为计算机应用的主要方面,数据库技术则成为人们日常生活中处理数据不可缺少的有力工具,并且现代的信息管理系统几乎都以数据库技
18、术作为核心。现在大多数的图书管理方式为手工处理,重复劳动多,劳动强度大,而且容易出错,新系统的使用能否可以很好的解决这些问题要看系统的可行性,可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。系统的可行性分析有以下几个方面:(1)技术可行性:处理速度快、准确通过权限的设置,数据的安全性好、方便查询、借阅管理等。 (2)经济可行性:系统建设不需要很大的投入、可缩减人力投入。(3)运行上可行性:本系统作为一个小型的图书馆信息管理系统,所耗费的资源非常的小。 (4)从各种社会因素可行性分析:可降低工作人员工作强度,提高效率,会得到学校工作人员的一致同意的。综上所述通过可行性分析认
19、为新系统的开发方案切实可行,可进行开发。1.5 系统开发运行环境 系统开发环境:MyEclipse Java Enterprise 6.5系统开发语言:Java运行平台:Windows XP数据库:MySQL5.0Web服务器: Tomcat6.0第二章 本系统开发相关技术介绍2.1 javaJava已用动态的交互应用软件使Web栩栩如生。它使开发人员具有编写一次到处运行TM”的巨大能力。而且,借助其JavaAPI及其编程语言上的 Java虚拟机,它已产生一种分布信息的崭新模式。这种模式叫做Java 企业计算,正在帮助各企业以各种不同的方法取得竞争优势。网管和控制已大大简化。软件分配基本上是免
20、费的,而且立即可实现。电子贸易已获得。占有成本大幅度降低。信息和应用软件到处可存取。Java建立在简单的前提基础上,即所有微处理器都应讲同一种语言所有内部采用芯片的产品都应能一起工作,无缝而方便地共享信息。它已经改变企业和个人同Internet大交道的方式。现在,它正在对消费类产品产生明显的影响,而且从总体上更加深刻地影响企业计算。借助Java,您可自由自在地使用您已拥有的硬件和软件。这是因为Java是独立于平台的。它还可使您超越企业计算,使应用软件在便携式计算机、信息亭、电视、蜂窝电话和其他大量设备上运行。全世界的公司都已发现Java数不胜数的用途。所有用途可从其无可比拟的能力,即提高可靠性
21、、安全性和简化各种不同计算产品和环境的能力中受益非浅,而且节省的时间和费用十分可观。Java无处不在。它已拥有几百万个用户,其发展速度要快于在它以前的其他任何一种计算机产品。它可位于任何地方,而且能到处运行。Java正在迅速被用做传播信息的事实上标准,这是因为它既可给企业,也可给最终用户带来似乎数不清的好处。Java的特点:1、 Java 语 言 是 简 单 的 。 Java 语 言 的 语 法 与 C 语 言 和 C+语 言 很 接 近 , 使得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java。 另 一 方 面 , Java 丢 弃 了 C+ 中 很 少使 用 的 、 很
22、难 理 解 的 、 令 人 迷 惑 的 那 些 特 性 , 如 操 作 符 重 载 、 多 继 承 、 自 动 的强 制 类 型 转 换 。 特 别 地 , Java 语 言 不 使 用 指 针 , 并 提 供 了 自 动 的 废 料 收 集 , 使得 程 序 员 不 必 为 内 存 管 理 而 担 忧 。 2、 Java 语 言 是 一 个 面 向 对 象 的 。 Java 语 言 提 供 类 、 接 口 和 继 承 等 原 语 ,为 了 简 单 起 见 , 只 支 持 类 之 间 的 单 继 承 , 但 支 持 接 口 之 间 的 多 继 承 , 并 支 持 类与 接 口 之 间 的 实
23、现 机 制 ( 关 键 字 为 implements) 。 Java 语 言 全 面 支 持 动 态 绑 定 ,而 C+ 语 言 只 对 虚 函 数 使 用 动 态 绑 定 。 总 之 , Java 语 言 是 一 个 纯 的 面 向 对 象程 序 设 计 语 言 。 3、 Java 语 言 是 分 布 式 的 。 Java 语 言 支 持 Internet 应 用 的 开 发 , 在 基 本 的Java 应 用 编 程 接 口 中 有 一 个 网 络 应 用 编 程 接 口 ( java net) , 它 提 供 了 用 于 网 络应 用 编 程 的 类 库 , 包 括 URL、 URLCo
24、nnection、 Socket、 ServerSocket 等 。Java 的 RMI(远 程 方 法 激 活 )机 制 也 是 开 发 分 布 式 应 用 的 重 要 手 段 。 4、 Java 语 言 是 健 壮 的 。 Java 的 强 类 型 机 制 、 异 常 处 理 、 废 料 的 自 动 收 集等 是 Java 程 序 健 壮 性 的 重 要 保 证 。 对 指 针 的 丢 弃 是 Java 的 明 智 选 择 。 Java 的安 全 检 查 机 制 使 得 Java 更 具 健 壮 性 。 5、 Java 语 言 是 安 全 的 。 Java 通 常 被 用 在 网 络 环
25、境 中 , 为 此 , Java 提 供 了一 个 安 全 机 制 以 防 恶 意 代 码 的 攻 击 。 除 了 Java 语 言 具 有 的 许 多 安 全 特 性 以 外 ,Java 对 通 过 网 络 下 载 的 类 具 有 一 个 安 全 防 范 机 制 ( 类 ClassLoader) , 如 分 配不 同 的 名 字 空 间 以 防 替 代 本 地 的 同 名 类 、 字 节 代 码 检 查 , 并 提 供 安 全 管 理 机 制( 类 SecurityManager) 让 Java 应 用 设 置 安 全 哨 兵 。 6、 Java 语 言 是 体 系 结 构 中 立 的 。
26、Java 程 序 ( 后 缀 为 java 的 文 件 ) 在Java 平 台 上 被 编 译 为 体 系 结 构 中 立 的 字 节 码 格 式 ( 后 缀 为 class 的 文 件 ) , 然后 可 以 在 实 现 这 个 Java 平 台 的 任 何 系 统 中 运 行 。 这 种 途 径 适 合 于 异 构 的 网 络 环境 和 软 件 的 分 发 。 7、 Java 语 言 是 可 移 植 的 。 这 种 可 移 植 性 来 源 于 体 系 结 构 中 立 性 , 另 外 ,Java 还 严 格 规 定 了 各 个 基 本 数 据 类 型 的 长 度 。 Java 系 统 本 身
27、也 具 有 很 强 的 可移 植 性 , Java 编 译 器 是 用 Java 实 现 的 , Java 的 运 行 环 境 是 用 ANSI C 实 现 的 。8、 Java 语 言 是 解 释 型 的 。 如 前 所 述 , Java 程 序 在 Java 平 台 上 被 编 译 为 字节 码 格 式 , 然 后 可 以 在 实 现 这 个 Java 平 台 的 任 何 系 统 中 运 行 。 在 运 行 时 ,Java 平 台 中 的 Java 解 释 器 对 这 些 字 节 码 进 行 解 释 执 行 , 执 行 过 程 中 需 要 的 类 在联 接 阶 段 被 载 入 到 运 行
28、环 境 中 。 9、 Java 是 高 性 能 的 。 与 那 些 解 释 型 的 高 级 脚 本 语 言 相 比 , Java 的 确 是 高性 能 的 。 事 实 上 , Java 的 运 行 速 度 随 着 JIT(Just-In-Time)编 译 器 技 术 的 发 展 越来 越 接 近 于 C+。 10、 Java 语 言 是 多 线 程 的 。 在 Java 语 言 中 , 线 程 是 一 种 特 殊 的 对 象 , 它必 须 由 Thread 类 或 其 子 ( 孙 ) 类 来 创 建 。 通 常 有 两 种 方 法 来 创 建 线 程 : 其 一 ,使 用 型 构 为 Thre
29、ad(Runnable) 的 构 造 子 将 一 个 实 现 了 Runnable 接 口 的 对 象 包装 成 一 个 线 程 , 其 二 , 从 Thread 类 派 生 出 子 类 并 重 写 run 方 法 , 使 用 该 子 类创 建 的 对 象 即 为 线 程 。 值 得 注 意 的 是 Thread 类 已 经 实 现 了 Runnable 接 口 , 因此 , 任 何 一 个 线 程 均 有 它 的 run 方 法 , 而 run 方 法 中 包 含 了 线 程 所 要 运 行 的 代码 。 线 程 的 活 动 由 一 组 方 法 来 控 制 。 Java 语 言 支 持 多
30、个 线 程 的 同 时 执 行 , 并提 供 多 线 程 之 间 的 同 步 机 制 ( 关 键 字 为 synchronized) 。 11、 Java 语 言 是 动 态 的 。 Java 语 言 的 设 计 目 标 之 一 是 适 应 于 动 态 变 化 的 环境 。 Java 程 序 需 要 的 类 能 够 动 态 地 被 载 入 到 运 行 环 境 , 也 可 以 通 过 网 络 来 载 入所 需 要 的 类 。 这 也 有 利 于 软 件 的 升 级 。 另 外 , Java 中 的 类 有 一 个 运 行 时 刻 的表 示 , 能 进 行 运 行 时 刻 的 类 型 检 查 。
31、Java语 言 的 优 良 特 性 使 得 Java应 用 具 有 无 比 的 健 壮 性 和 可 靠 性 , 这 也减 少 了 应 用 系 统 的 维 护 费 用 。 Java对 对 象 技 术 的 全 面 支 持 和 Java平 台 内 嵌 的API能 缩 短 应 用 系 统 的 开 发 时 间 并 降 低 成 本 。 Java的 编 译 一 次 , 到 处 可 运 行 的特 性 使 得 它 能 够 提 供 一 个 随 处 可 用 的 开 放 结 构 和 在 多 平 台 之 间 传 递 信 息 的 低 成本 方 式 。 特 别 是 Java企 业 应 用 编 程 接 口 ( Java En
32、terprise APIs) 为 企 业 计 算 及电 子 商 务 应 用 系 统 提 供 了 有 关 技 术 和 丰 富 的 类 库 。2.2 MySqlMySQL 是 一 个 小 型 关 系 型 数 据 库 管 理 系 统 , 开 发 者 为 瑞 典 MySQL AB 公 司 。 在2008 年 1 月 16 号 被 Sun 公 司 收 购 。 而 2009 年 ,SUN 又 被 Oracle 收 购 .对 于Mysql 的 前 途 ,没 有 任 何 人 抱 乐 观 的 态 度 .目 前 MySQL 被 广 泛 地 应 用 在Internet 上 的 中 小 型 网 站 中 。 由 于 其
33、 体 积 小 、 速 度 快 、 总 体 拥 有 成 本 低 , 尤 其是 开 放 源 码 这 一 特 点 , 许 多 中 小 型 网 站 为 了 降 低 网 站 总 体 拥 有 成 本 而 选 择 了MySQL 作 为 网 站 数 据 库 。 MySQL 的 官 方 网 站 的 网 址 是 : MySQL 最 初 的 开 发 者 的 意 图 是 用 mSQL 和 他 们 自 己 的 快 速 低 级 例 程 (ISAM)去 连接 表 格 。 不 管 怎 样 , 在 经 过 一 些 测 试 后 , 开 发 者 得 出 结 论 : mSQL 并 没 有 他 们需 要 的 那 么 快 和 灵 活 。
34、 这 导 致 了 一 个 使 用 几 乎 和 mSQL 一 样 的 API 接 口 的 用 于他 们 的 数 据 库 的 新 的 SQL 接 口 的 产 生 , 这 样 , 这 个 API 被 设 计 成 允 许 为 用 于mSQL 而 写 的 第 三 方 代 码 更 容 易 移 植 到 MySQL。MySql 特 性 :1.使 用 C 和 C+编 写 , 并 使 用 了 多 种 编 译 器 进 行 测 试 , 保 证 源 代 码 的 可 移植 性 2.支 持 AIX、 FreeBSD、 HP-UX、 Linux、 Mac OS、 Novell Netware、 OpenBSD、 OS/2 W
35、rap、 Solaris、 Windows 等 多 种 操 作 系 统 3.为 多 种 编 程 语 言 提 供 了 API。 这 些 编 程 语 言 包 括C、 C+、 Python、 Java、 Perl、 PHP、 Eiffel、 Ruby 和 Tcl 等 。 4.支 持 多 线 程 , 充 分 利 用 CPU 资 源 5.优 化 的 SQL 查 询 算 法 , 有 效 地 提 高 查 询 速 度 6.既 能 够 作 为 一 个 单 独 的 应 用 程 序 应 用 在 客 户 端 服 务 器 网 络 环 境 中 , 也 能够 作 为 一 个 库 而 嵌 入 到 其 他 的 软 件 中 提
36、供 多 语 言 支 持 , 常 见 的 编 码 如 中 文 的GB 2312、 BIG5, 日 文 的 Shift_JIS 等 都 可 以 用 作 数 据 表 名 和 数 据 列 名 7.提 供 TCP/IP、 ODBC 和 JDBC 等 多 种 数 据 库 连 接 途 径 8.提 供 用 于 管 理 、 检 查 、 优 化 数 据 库 操 作 的 管 理 工 具 9.可 以 处 理 拥 有 上 千 万 条 记 录 的 大 型 数 据 库MySql 应用:与 其 他 的 大 型 数 据 库 例 如 Oracle、 DB2、 SQL Server 等 相 比 , MySQL 自 有 它 的不 足
37、 之 处 , 如 规 模 小 、 功 能 有 限 ( MySQL Cluster 的 功 能 和 效 率 都 相 对 比 较 差 )等 , 但 是 这 丝 毫 也 没 有 减 少 它 受 欢 迎 的 程 度 。 对 于 一 般 的 个 人 使 用 者 和 中 小 型企 业 来 说 , MySQL 提 供 的 功 能 已 经 绰 绰 有 余 , 而 且 由 于 MySQL 是 开 放 源 码 软 件 ,因 此 可 以 大 大 降 低 总 体 拥 有 成 本 。 目 前 Internet上 流 行 的 网 站 构 架 方 式 是LAMP( Linux+Apache+MySQL+PHP) , 即 使
38、 用 Linux作 为 操 作 系 统 , Apache作 为Web服 务 器 , MySQL作 为 数 据 库 , PHP作 为 服 务 器 端 脚 本 解 释 器 。 由 于 这 四 个 软件 都 是 免 费 或 开 放 源 码 软 件 ( FLOSS), 因 此 使 用 这 种 方 式 不 用 花 一 分 钱 就 可 以建 立 起 一 个 稳 定 、 免 费 的 网 站 系 统 。2.3 Struts2struts 是开源软件。使用 Struts 的目的是为了帮助我们减少在运用 MVC 设计模型来开发 Web 应用的时间。如果我们想混合使用 Servlets 和 JSP 的优点来建立可扩展的应用,struts 是一个不错的选择。运行流程:服 务 器 启 动 后 , 根 据 web.xml 加 载 ActionServlet 读 取 struts-config.xml 文 件 内容 到 内 存 。 以 登 录 为 例 :第 一 次 进 log