1、摘要本文描述了仓储信息管理系统的设计与实现,描述并讲解了数据库技术及本系统应用到的其他技术。本系统的整体设计由 JSP 实现,以 My SQL 为后台数据服务器,增加系统的安全性和完整性,提高了系统响应的速度。整个软件系统基于浏览器/服务器(B/S )模式。本系统界面设计大方、简洁、实用,操作简单方便,是一款完全适合普通物流中心仓储信息管理的软件。能实现入库、出库、盘点和库存控制等仓储的智能化管理,可以提高库存管理的效率。同时通过入库单、出库单、盘点单等各种单据使物主能够浏览自己的货物情况,便于向物流企业反馈信息。关键词:仓储管理、库存控制、数据库设计 ABSTRACTThis article
2、 describs the design and realization of the storehouse information management system in the logistics centre. Our systems proscenium realizes by JSP, and uses the MySQL to the backstage data-server. It increases systems security, integrity and response speed. The whole software system bases on brows
3、e/server (B/S) mode. Our system interface designs generous, concise, utility, and easily be operated. It suits to the storehouse information management system in the logisticscentre and can carry out the storehouses warehousing, outdelivering, checking and stock control. Also the owners are clear to
4、 know their goods information by scan warehousing lists, outdeliver lists and check lists, can make the logistics company to know the information of goods easily.KEYWORDS: storage management, stock control, database design.前言一课题研究背景随着 IT 技术的不断发展和成熟,信息的重要性日渐显现。市场信息化的日益扩大,使自动化管理水平,以最快的速度和最准确的数据获得信息并及时
5、作出反馈,使公司能够在同每个公司的仓储部门先前的简单手工工作日趋没落,难以跟上市场的步伐。为了提高企业的类型的企业竞争中立于不败之地,信息产业的开发和科学管理的运用刻不容缓。基于此形势,许多公司针对企业仓储部门实行基于关系数据库的信息管理制度,并以此为最高管理层提供决策服务。为此,本小组也以适应当前企业信息管理制度而尝试开发了本仓储管理系统。二本系统的主要工作内容主要进行了以下几项工作:(1)对项目需求进行调研,确定系统需求;(2)对系统的功能模块进行进一步划分,对系统所需实现的功能进行详细分析和总体设计;3)对数据库进行设计,使用 HTML 进行页面设计, 使用 JSP、JavaScript
6、 等技术对每个功能模块编写相应代码实现相应功能,使用 JDBC 技术连接后台数据库;三本论文的主要内容本论文的主要内容为:(1) 阐述了本系统所运用的相关技术,开发背景及环境,系统需求分析,系统总体结构及主要实现功能;(2) 详细讲解了本人负责的系统任务:数据库设计,产品库存管理模块等。目录第一章 相关技术简介.11.1 SQL 语言基础.11.1.1 SQL 简介.11.1.2 SQL 查询11.1.3 SQL 数据更新21.2 JSP 动态网页技术 .21.3 Struts 框架技术 .31.4 JavaScript 技术.31.5 B/S 模式体系架构.31.6 CSS.41.7 JDB
7、C 访问数据库.4第二章 系统开发及使用环境.52.1 系统开发平台52.1.1 操作系统.52.1.2 开发工具.52.2 硬件环境62.3 软件运行平台6第三章 系统总体设计.73.1 可行性分析.73.2 系统需求分析.83.3 系统概要设计.83.3.1 系统结构设计.8第四章 系统详细设计134.1 详细设计说明. 134.2 数据库详细设计.134.2.1 数据库概念结构设计.134.2.2 数据库逻辑结构设计.154.2.3 系统有关数据表.184.3 产品库存管理模块详细设计.214.3.1 模块功能.214.3.2 部分功能展示及实现代码.21结论.26参考文献.27第一章
8、相关技术简介主要运用的技术:SQL 数据库技术,JSP 动态网页技术,Struts 框架技术Javascript 脚本语言, CSS,JDBC 数据库连接技术等。1.1 SQL 语言基础1.1.1 SQL 简介用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。不同的数据库管理系统提供不同的数据库语言。关系数据库管理系统几乎都提供关系数据库标准语言SQL。SQL 的全称是 Structured Query Language,即结构化查询语言。SQL 语句可以从关系数据库中获得数据,也可以建立数据库、增加数据、修改数据。1986 年ANSI 采用 SQL 语言作为关系数据库系统的标准语言
9、,后被国际化标准组织(ISO)采纳为国际标准。SQL 语言使用方便、功能丰富、简洁易学,是操作数据库的工业标准语言,得到广泛地应用。例如关系数据库产品DB2、 ORACLE 等都实现了 SQL 语言。同时,其它数据库产品厂家也纷纷推出各自的支持 SQL 的软件或者与 SQL 的接口软件。这样 SQL 语言很快被整个计算机界认可。SQL 语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。SQL 语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。SQL 语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。当设计者在关系表上定义了索
10、引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。SQL 语言可以完成许多功能,例如: 查询数据 在数据库表格中插入、修改和删除记录 建立、修改和删除数据对象 控制对数据和数据对象的存取 确保数据库的一致性和完整性等1.1.2 SQL 查询数据查询是关系运算理论在 SQL 语言中的主要体现, SELECT 语句是SQL 查询的基本语句,当我们在对一个数据库进各种各样的操作时,使用的最多的就是数据查询,在以 SQL 为基础的关系数据库中,使用的最多的就是SELECT 查询语句。SELECT 语句的完整句法如下:SELECT 目标表的列名或列表达式序列FR
11、OM 基本表和(或)视图序列WHERE 行条件表达式GROUP BY 列名序列HAVING 组条件表达式 ORDER BY 列名 ASCDEAC我们在 SELECT 语句中还使用了大量的保留字和通配符以进行各种各样的条件查询。在系统中有大量的查询按钮,其使用了大量的查询语句,而且这些查询语句大部分使用的是模糊查询,所以大量的使用了模式匹配符 LIKE(判断值是否与指定的字符通配格式相符)。在包含 LIKE 的查询语句中可以使用两个通配符:% (百分号):与零个或多个字符组成的字符串匹配;_(下划线):与单个字符匹配。系统中的条件判断往往包含多个条件,这时就需要使用逻辑运算符 NOT、AND 、
12、OR( 用于多条件的逻辑连接 ),谓词 ALL 以及保留字DISTINCT 等等。作为 SELECT 语句还有很多的使用方法,这里就不再叙述。1.1.3 SQL 数据更新使用数据库的目的是为了有效地管理数据,而数据的插入、删除和修改则是必不可少的一个功能。在本系统中就大量地使用了数据插入、删除和修改这三种操作,现做一个简单地介绍。数据插入往数据库的基本表中插入数据使用的是 INSERT 语句,其方式有两种:一种是元组值的插入,另一种是查询结果的插入。在本系统中使用的是前一种方式,其句法如下:INSERT INTO 基本表名(列表名) VALUES(元组值)数据删除往数据库的基本表中删除数据使用
13、的是 DELETE 语句,其句法如下:DELETE FROM 基本表名 WHERE 条件表达式在些作一点说明,删除语句实际上是“SELECT * FROM 基本表名 WHERE 条件表达式”和 DELETE 操作的结合,每找到一个元组,就把它删除。此外,DELETE 语句只能从一个基本表中删除元组, WHERE 子句中条件可以嵌套,也可以是来自几个基本表的复合条件。数据修改当需要修改基本表中元组的某些列值时,可以用 UPDATE 语句实现,其句法如下:UPDATE 基本表名SET 列名= 值表达式 ,列名 =值表达式WHERE 条件表达式在 Delphi 中使用 SQL 语句是很方便的,一般来
14、说,都是通过 TQuery 组件来使用 SQL 语言的。有一点要进行说明,虽然通过 TQuery 组件来使用 SQL 语言很方便,但考虑到自己对不同组件的理解程度、个人习惯以及其它各个方面,在本系统中我们采用的是 ADO 组件来对数据库进行操作。最简单的方法比如在TADOQuery 组件的 SQL 属性中就可以键入 SQL 语句,至于详细的使用方法在后面进行介绍。 1.2 JSP 动态网页技术:JSP (Java Server Pages)技 术 使 用 Java 编 程 语 言 编 写 类 XML 的 tags 和scriptlets, 来 封 装 产 生 动 态 网 页 的 处 理 逻 辑
15、 。 网 页 还 能 通 过 tags 和scriptlets 访 问 存 在 于 服 务 端 的 资 源 的 应 用 逻 辑 。 JSP 将 网 页 逻 辑 与 网 页 设计 和 显 示 分 离 , 支 持 可 重 用 的 基 于 组 件 的 设 计 , 使 基 于 Web 的 应 用 程 序 的开 发 变 得 迅 速 和 容 易 。Web 服 务 器 在 遇 到 访 问 JSP 网 页 的 请 求 时 , 首 先 执 行 其 中 的 程 序 段 ,然 后 将 执 行 结 果 连 同 JSP 文 件 中 的 HTML 代 码 一 起 返 回 给 客 户 。 插 入 的JAVA 程 序 段 可
16、 以 操 作 数 据 库 、 重 新 定 向 网 页 等 , 以 实 现 建 立 动 态 网 页 所 需要 的 功 能 。 JSP 与 Java Servlet 一 样 , 是 在 服 务 器 端 执 行 的 , 通 常 返 回 该 客 户 端 的就 是 一 个 HTML 文 本 , 因 此 客 户 端 只 要 有 浏 览 器 就 能 浏 览 。1.3 Struts 框架:Struts 是 Apache 基 金 会 Jakarta 项 目 组 的 一 个 Open Source 项 目 , 它采 用 MVC(Model-View -Controller)模 式 , 能 够 很 好 地 帮 助
17、java 开 发 者 利 用J2EE 开 发 Web 应 用 。 和 其 他 的 java 架 构 一 样 , Struts 也 是 面 向 对 象 设 计 ,将 MVC 模 式 “分 离 显 示 逻 辑 和 业 务 逻 辑 “的 能 力 发 挥 得 淋 漓 尽 致 。 Structs 框 架 的 核 心 是 一 个 弹 性 的 控 制 及 Jakarta Commons 的 一 些 类 库 。 Struts 有一 组 相 互 协 作 的 类 ( 组 件 ) 、 Servlet 以 层 , 基 于 如 Java Servlets, JavaBeans, ResourceBundles 与 XM
18、L 等 标 准 技 术 , 以 及 jsp tag lib 组 成 。 基 于 struts 构 架 的 web 应 用 程 序 基 本 上 符 合 JSP Model2 的 设 计标 准 , 可 以 说 是 一 个 传 统 MVC 设 计 模 式 的 一 种 变 化 类 型 。它 的 目 的 是 为 了 帮 助 我 们 们 减 少 在 运 用 MVC 设 计 模 型 来 开 发 Web 应用 的 时 间 。1.4 JavaScript :Javascript 是一种面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言遗留的速度问题,为客户提供更流畅的浏览效果。在 H
19、TML 基 础 上 , 使 用 Javascript 可 以 开 发 交 互 式 Web 网 页 。Javascript 的 出 现 使 得 网 页 和 用 户 之 间 实 现 了 一 种 实 时 性 的 、 动 态 的 、 交 互 性的 关 系 , 使 网 页 包 含 更 多 活 跃 的 元 素 和 更 加 精 彩 的 内 容 。Javascript 短 小 精 悍 , 又 是 在 客 户 机 上 执 行 的 , 大 大 提 高 了 网 页 的 浏 览速 度 和 交 互 能 力 。 同 时 它 又 是 专 门 为 制 作 Web 网 页 而 量 身 定 做 的 一 种 简单 的 编 程 语
20、言 。1.5 B/S 模式体系架构即浏览器/服务器模式体系架构。近年来,随着 Internet/Intranet 的迅猛发展,企业纷纷建立自己的 Internet,以加强企业内部的联系,增强企业竞争力。Internet/Intranet 中不断出现的网络新技术,带给 OA 全新的应用模式。C/S 模式与 B/S 模式的优劣比较见表:表 1-1 C/S 模式与 B/S 模式的比较1.6 CSS:CSS, 指 层 叠 样 式 表 (Cascading Style Sheets), 样 式 定 义 如 何 显 示HTML 元 素 , 样 式 通 常 存 储 在 样 式 表 中 , 把 样 式 添 加
21、 到 HTML 中 , 是 为 了解 决 内 容 与 表 现 分 离 的 问 题 。 外 部 样 式 表 可 以 极 大 提 高 工 作 效 率 。 外 部 样式 表 通 常 存 储 在 CSS 文 件 中 , 多 个 样 式 定 义 可 层 叠 为 一 。样 式 表 定 义 如 何 显 示 HTML 元 素 , 就 像 HTML 3.2 的 字 体 标 签 和 颜色 属 性 所 起 的 作 用 那 样 。 样 式 通 常 保 存 在 外 部 的 .css 文 件 中 。 通 过 仅 仅 编辑 一 个 简 单 的 CSS 文 档 , 外 部 样 式 表 使 你 有 能 力 同 时 改 变 站
22、点 中 所 有 页 面的 布 局 和 外 观 。1.7 JDBC 访问数据库:JDBC( Java Data Base Connectivity) , 即 java 数 据 库 连 接 , 是 一 种 用于 执 行 SQL 语 句 的 Java API, 可 以 为 多 种 关 系 数 据 库 提 供 统 一 访 问 , 它 由一 组 用 Java 语 言 编 写 的 类 和 接 口 组 成 。 JDBC 为 工 具 /数 据 库 开 发 人 员 提 供了 一 个 标 准 的 API, 据 此 可 以 构 建 更 高 级 的 工 具 和 接 口 , 使 数 据 库 开 发 人 员能 够 用 纯
23、 Java API 编 写 数 据 库 应 用 程 序 。B/S 模式 C/S 模式具有分布式的特点,可以随时随地的进行业务处理。业务扩展简单方便,通过增加网页即可增加服务器功能。维护简单方便,只要改变网页,即可实现所有用户的同步更新。开发简单,共享性强。由于客户端与服务器的直接相连,没有中间环节,因此响应速度快。客户操作界面设计人性化,具有直观,简单,方便的特点,可以满足客户个性化的需求。同时由于开发是针对性的,因此操作界面漂亮,样式多样,可以充分满足客户自身的个性化要求个性化特点明显降低,无法实现具有个性化的设计要求。操作的习惯性是以鼠标为最基本的操作方式,无法满足快速操作的要求。页面动态
24、刷新,响应速度明显下降。专用性的打印输出难以实现,有以对票据等的打印,难以实现套打输出,难以实现某些特殊功能要求由于是针对性的开发,因此缺少通用性的特点,业务变更或者改变不够灵活,需要重新开发,增加了维护和管理的难度。需要专门的客户端 安装程序,分布功能弱。兼容性差,对于不同开发工具之间很难兼容。开发成本较高。第二章 系统开发使用环境2.1 系统开发平台2.1.1 操作系统:Windows XP2.1.2 开发工具:(1) Eclipse 6.6 Eclipse 是 一 个 开 放 源 代 码 的 软 件 开 发 项 目 , 专 注 于 为 高 度 集 成 的 工 具 开发 提 供 一 个 全
25、 功 能 的 、 具 有 商 业 品 质 的 工 业 平 台 。 就 其 本 身 而 言 , 它 只 是一 个 框 架 和 一 组 服 务 , 用 于 通 过 插 件 组 件 构 建 开 发 环 境 。 Eclipse 附 带 了 一个 标 准 的 插 件 集 , 包 括 Java 开 发 工 具 ( Java Development Tools, JDT) 。它 主 要 由 Eclipse 项 目 、 Eclipse 工 具 项 目 和 Eclipse 技 术 项 目 三 个 项 目 组 成 ,具 体 包 括 四 个 部 分 组 成 Eclipse Platform、 JDT、 CDT 和
26、PDE.JDT 支 持Java 开 发 、 CDT 支 持 C 开 发 、 PDE 用 来 支 持 插 件 开 发 , Eclipse Platform则 是 一 个 开 放 的 可 扩 展 IDE, 提 供 了 一 个 通 用 的 开 发 平 台 。 它 提 供 建 造 块 和构 造 并 运 行 集 成 软 件 开 发 工 具 的 基 础 。 Eclipse Platform 允 许 工 具 建 造 者 独立 开 发 与 他 人 工 具 无 缝 集 成 的 工 具 从 而 无 须 分 辨 一 个 工 具 功 能 在 哪 里 结 束 ,而 另 一 个 工 具 功 能 在 哪 里 开 始 。Ec
27、lipse SDK( 软 件 开 发 者 包 ) 是 Eclipse Platform、 JDT 和 PDE所 生 产 的 组 件 合 并 , 它 们 可 以 一 次 下 载 。 这 些 部 分 在 一 起 提 供 了 一 个 具 有 丰富 特 性 的 开 发 环 境 , 允 许 开 发 者 有 效 地 建 造 可 以 无 缝 集 成 到 Eclipse Platform 中 的 工 具 。 Eclipse SDK 由 Eclipse 项 目 生 产 的 工 具 和 来 自 其 它 开 放源 代 码 的 第 三 方 软 件 组 合 而 成 。 Eclipse 项 目 生 产 的 软 件 以 C
28、PL 发 布 , 第三 方 组 件 有 各 自 自 身 的 许 可 协 议 。(3) My SQL 5.0.18:MySQL 是 一 个 真 正 的 多 用 户 、 多 线 程 SQL 数 据 库 服 务 器 。 SQL( 结构 化 查 询 语 言 ) 是 世 界 上 最 流 行 的 和 标 准 化 的 数 据 库 语 言 。 MySQL 是 以 一个 客 户 机 /服 务 器 ( C/S) 结 构 的 实 现 , 它 由 一 个 服 务 器 守 护 程 序 mysqld 和很 多 不 同 的 客 户 程 序 和 库 组 成 。MySQL 是 一 个 精 巧 的 SQL 数 据 库 管 理 系
29、 统 , 由 于 它 的 强 大 功 能 、 灵 活性 、 丰 富 的 应 用 编 程 接 口 ( API) 以 及 精 巧 的 系 统 结 构 , 受 到 了 广 大 自 由 软件 爱 好 者 甚 至 是 商 业 软 件 用 户 的 青 睐 , 特 别 是 与 Apache 和 PHP/PERL 结合 , 为 建 立 基 于 数 据 库 的 动 态 网 站 提 供 了 强 大 动 力 。可 以 使 用 命 令 行 工 具 管 理 MySQL 数 据 库 ( 命 令 mysql 和 mysqladmin)。(4) tomcat 5.0:Tomcat 是 一 个 小 型 的 轻 量 级 应 用
30、服 务 器 , 在 中 小 型 系 统 和 并 发 访 问 用户 不 是 很 多 的 场 合 下 被 普 遍 使 用 , 是 开 发 和 调 试 JSP 程 序 的 首 选 。实 际 上 Tomcat 部 分 是 Apache 服 务 器 的 扩 展 , 但 它 是 独 立 运 行 的 , 所以 当 你 运 行 tomcat 时 , 它 实 际 上 作 为 一 个 与 Apache 独 立 的 进 程 单 独 运 行的 。 当 配 置 正 确 时 , Apache 为 HTML 页 面 服 务 , 而 Tomcat 实 际 上 运 行JSP 页 面 和 Servlet。 另 外 , Tomca
31、t 和 IIS、 Apache 等 Web 服 务 器 一 样 , 具有 处 理 HTML 页 面 的 功 能 , 另 外 它 还 是 一 个 Servlet 和 JSP 容 器 , 独 立 的Servlet 容 器 是 Tomcat 的 默 认 模 式 。 不 过 , Tomcat 处 理 静 态 HTML 的 能 力不 如 Apache 服 务 器 。(5) jdk-1_5_0_05:JDK(Java Development Kit)是 Sun Microsystems 针对 Java 开发员的产品。自从 Java 推出以来,JDK 已经成为使用最广泛的 Java SDK。JDK 是整个
32、Java的核心,包括了 Java 运行环境, Java 工具和 Java 基础的类库。2.1.3 图形化工具:navicat for mysql:Navicat MySQL 是 一 个 强 大 的 MySQL 数 据 库 服 务 器 管 理 和 开 发 工 具 。它 可 以 与 任 何 3.21 或 以 上 版 本 的 MySQL 一 起 工 作 , 并 支 持 大 部 分 的MySQL 最 新 功 能 , 包 括 触 发 器 、 存 储 过 程 、 函 数 、 事 件 、 视 图 、 管 理 用 户 ,等 等 。 其 精 心 设 计 的 图 形 用 户 界 面 ( GUI) , Navica
33、t MySQL 可 以 让 你 用 一种 安 全 简 便 的 方 式 快 速 并 容 易 地 创 建 , 组 织 , 访 问 和 共 享 信 息 。它 可 以 使 用 户 连 接 到 本 地 /远 程 服 务 器 , 提 供 了 几 种 实 用 工 具 , 例 如 数据 结 构 同 步 、 导 入 /导 出 、 备 份 和 报 告 , 使 维 护 数 据 的 过 程 很 容 易 。2.2 硬件环境CPU:Intel Pentium 或以上内存:512MB 或以上硬盘 40GB 或以上显示器无要求2.3 软件运行平台操作系统:Windows 2003/XP第三章 系统总体设计软件系统的总体设计大
34、约要经历可行性分析,需求分析,概要设计,详细设计,编码,测试以及维护等七个阶段。下面所要做的是进行可行性分析、软件需求分析,概要设计和详细设计。由于任务分配问题,系统详细设计将在下一章作具体讲解,编码过程将在详细设计一章中论述,而测试和维护过程不在本文叙及。3.1 可行性分析:当接受一个软件开发任务,就进入软件生命的第一个阶段,即进行可行性的研究。并不是所有问题具有简单的解决办法,许多问题不能在预定的规模之内解决。因此通过可行性的研究分析可以知道问题。 有无可行性的解决方法,进而避免人力、物力和才力的浪费。在现行系统初步调查的基础上就可以提出新系统目标,即新系统建立后所要求达到的运行指标,这是
35、系统开发和评价的依据。系统目标应充分体现,直接为仓库管理系统服务,并且,程序可以分期分批实现。但是,需要指出的是,系统目标是不可能在总体规划阶段就提得非常具体,它还将在开发过程中逐步明确和定量化。以达到更加出色的程序系统。可是,目标的提法不尽相同,例如: 提高仓库管理效率,减轻劳动强度; 提高信息处理速度和准确性; 为仓库管理者提供更方便、科学的服务项目。 系统的目标确定后,就可以从以下四方面对能否实现新系统目标进行可行性分析: (1)技术可行性根据当初提出的系统功能、性能及实现系统的各项约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。考虑给予的开发时间有限,预计在规定期完成开发的系统难免不完善之处。(2)运行可行性新系统的研制和开发是充分考虑工作人员对仓库的易于管理,管理者方便查询设备信息效率。从而能完全满足使用者的要求。