




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 河河北北农农业业大大学学 本本科科毕毕业业论论文文 设设计计 题题 目 目 医药连锁店管理系统医药连锁店管理系统 库存管理系统库存管理系统 学学 院 院 信息科学与技术学院信息科学与技术学院 专业年级 专业年级 计算机专接本计算机专接本 12011201 班班 学学 号 号 学生姓名 学生姓名 指导教师姓名 指导教师姓名 指导教师职称 指导教师职称 讲讲 师师 二二 一四一四 年年 六六 月月 一一 日日 2 摘摘 要要 随着医疗技术的不断发展 医院规模的不断扩大 药品进货量 销售量的急剧增 加 药品进销存管理系统在药品的进货 销售和库存管理中发挥着越来越重要的作用 与此同时 传统的医院药品进销存管理系统已不能满足目前药品进 销 存流程高效 管理的需求 如何根据医院实际情况设计出适合自身使用的药品进销存管理系统 是 当前需要研究的问题 本文通过对某医院药品进销存管理流程的调研和需求分析 提出了基于 B S 架构 的药品进销存管理系统 并根据 Java EE 规范分析和设计了药品进销存管理系统 本 文系统与传统药品进销存管理系统相比 采用了更合理的模块化设计 实现了管理员 药品管理 类别管理 销售管理 进货 需求管理和系统管理六大模块 从而实现了对 医药进货 销售和库存各个环节的有效监督和管理 整个系统在 Windows 7 系统下 以 MyEclipse 为开发工具 MySQL 为后台数据库管 理系统 采用 Java 应用框架 Struts Hibernate 开发而成 关键字 药品进销存管理系统 B S Struts Hibernate 3 ABSTRACTABSTRACT With the development of medicine technology and the extension of the hospital pharmaceutical purchase and sales increase dramatically the medicine inventory management system plays an increasingly important role At the same time traditional inventory management system cannot meet the current needs of efficiency management of medicine purchase sales and storage How to design an appropriate system for the actual situation of the hospital is the necessary issue to be studied In this paper we analysis and investigate the flow of medicine purchase sales inventory of Taian Traditional Chinese Medicine hospital and then we propose an inventory management system based on B S model design and implement the system under Java EE specification Compared with traditional medicine inventory management system our system uses a more rational modular design for better management of medicine inventory process Implementations of the administrators drug management category management sales management stock requirements management and system management of six modules which can make all aspects of purchase sales and storage be managed much more efficient and also arise the economic effectiveness of the hospital This whole system is developed under Windows 7 operating system by MyEclipse SDK We use MySQL as the database management system And the popular Java application frameworks Struts and Hibernate are used in the implementation of system Testing and practice shows that system has good openness maintainability and stability and meets the requirements of the practical applications of Taian Traditional Chinese Medicine hospital Key words medicine inventory management system B S Struts Hibernate 4 目 录 1 绪论 6 1 1 课题研究背景 6 1 2 国内外研究现状 6 1 3 相关技术介绍 7 1 4 论文主要工作与结构 7 2 系统需求分析 8 2 1 系统概述 8 2 2 系统功能性需求分析 9 2 2 1 管理员登录 10 2 2 2 药品管理 10 2 2 3 类别管理 11 2 2 4 销售管理 11 2 2 5 进货 需求管理 12 2 2 6 系统管理 12 2 3 系统非功能性需求分析 13 2 4 系统总体流程分析 15 3 系统架构设计 17 3 1 系统软件架构分析 17 3 2 系统技术分析 18 3 2 1 MVC 模式 18 3 2 2 Struts Hibernate 框架 18 3 3 系统功能架构设计 20 4 系统数据库设计 21 4 1 概念模型 21 4 2 数据库设计原则 23 4 3 系统数据表 24 5 系统实现 25 5 1 系统开发环境 25 5 2 系统实现 26 5 2 1 管理员登录 26 5 2 2 药品管理模块 26 5 2 3 类别管理模块 27 5 2 4 销售管理模块 28 5 2 5 进货 需求管理模块 29 5 2 6 系统管理模块 30 5 结束语 31 致谢 32 参考文献 33 6 1 1 绪论绪论 1 1 课题研究背景 随着现代信息技术的迅猛发展 计算机技术和网络技术的日渐成熟 自动化办公 和管理软件的深入应用为日常事务的处理提供了便利条件 给人们日常工作方式带来 了巨大的变革 随着科学技术的不断发展 医疗水平的不断提高 医院规模的不断扩 大 药品供给量的不断增加 原始的药品进销存系统已经不能满足现代化的管理方式 新一代的药品进销存系统已经由过去单纯的记账模式转变为分类 汇总以及数据查询 报表生成 信息跟踪 数据统计等多功能模式 医院药品进销存系统主要用来对医院药品进货 销售 库存进行统一全程跟踪管 理 由于医院药品种类繁多 流通量大 药品进销存管理任务繁重 保证药品进销存 管理工作有秩序 有条理 有章可循的进行尤为重要 利用计算机来进行自动化管理 有着诸多人工管理所不具备的优势 例如 查找方便 检索迅速 保密性好 可靠性 高 存储量大 成本低 寿命长 使用自动化管理方式不仅能够保证信息统计的准确 无误 还能对信息记录进行跟踪和处理 为安全用药 放心用药提供保障 如今已经 投入使用的药品进销存系统版本繁多 各有特点 但各医院的硬件条件 规模大小 员工技能素质 管理需求 业务流程及工作模式等各不相同 如何根据自身的实际需 求设计一套适合自身医院使用的药品进销存管理系统 将直接关系着药品进销存管理 的效率和医院的经济效益 本文在对某医院药品进销存管理进行详细调研的基础上 根据医院的实际需求 分析和设计了本文的系统 1 2 国内外研究现状 医院药品进销存系统是医院信息系统 HIS 的一部分 西方发达国家对计算机在医 院的应用研究开始的比较早 早在四十多年前美国开始研究医院信息系统时 就已经开 始了对药品进销存系统的研究 但由于计算机技术的限制 美国对 HIS 的研究一直停留 在理论阶段 随着计算机技术的不断发展 70 年代时 欧美日等发达国家开始了关于 HIS 的开发 为后来医院信息系统的发展奠定了基础 70 80 年代时 美国在 HIS 产业 上有了较大的发展 经过这几十年的经验总结和版本的不断更新换代 如今已有许多成功的系统在各大 医院投入使用 并有效运转着 虽然各医院药品进销存管理系统大致流程和功能需求相 似 但在实际应用中 各医院的硬件条件 规模大小 员工技能素质 管理需求 业务 流程及工作模式等各不相同 因此 如今即使是在发达国家 也没有任何一个能够适用于 所有医院的标准系统 各医院仍需根据自己的实际规模和需求来设计和开发适合自身 条件的药品进销存管理系统 7 由于计算机技术引进的相对较晚 我国开始研究计算机技术在医疗行业的应用比 西方国家晚 80 年代中期 我国一些医院建立了自己的小型局域网 开发了药品进销 存管理和住院管理系统等小型网络管理系统 进入 90 年代 随着数据库技术的盛行 拥有计算机技术支持的大型医院开始着手开发适合自己医院的 HIS 系统 包括药品进 销存管理系统 如今 我国大中型医院中基本都已经建立了适用于自己医院的药品进 销存管理系统 并很好的融合于医院信息管理系统中 稳定运行 但规模较小的医院 由于部分医院领导者缺乏强烈的信息化意识 不能适应现代化管理思想的要求 习惯 于旧的管理模式 不能够清楚的认识到医院信息化管理的重要性 造成了整个医院信 息化建设步调缓慢 影响了药品进销存系统的有效建设和及时更新扩展 1 3 相关技术介绍 本系统主要是依靠 SSH 框架实现 集成 SSH 框架的系统从职责上分为四层 表示 层 业务逻辑层 数据持久层和域模块层 以帮助开发人员在短期内搭建结构清晰 可复用性好 维护方便的 Web 应用程序 其中使用 Struts 作为系统的整体基础架构 负责 MVC 的分离 在 Struts 框架的模型部分 利用 Hibernate 框架对持久层提供支持 业务逻辑层也是用的 Struts 框架 相比传统的 J2EE 开发工具 它具有一系列独特的优 点 首先 SSH 框架能够有效的降低开发成本 缩短开发周期 SSH 作为一款开源的框 架 无需部署在成本极高的大型服务器上 很多时候只需要配合 APACHE 一类较便宜的 服务器使用 其次 SSH 作为一款轻量级的框架可以有效降低系统开销 同时它还可以 与异步 JavaScript 和 XML 框架同时使用 不仅能够对用户体验产生极大的改善 且有 助于提升系统性能 最后 由于 SSH 框架建立于 J2EE 的基础之上 所以其同时具备了 J2EE 的安全性与跨平台优势 同时由于其往往将组件相关的配置与关系写入 XML 配置 文件 使其在面对需求变化时可通过简单的对配置信息的修改来加以实现而无需对系 统进行大的修改 1 4 论文主要工作与结构 首先 本文讨论了该项目背景 并介绍了国内外研究现状和医院信息化管理大趋 势下药品进销存管理系统所面临的问题 在此基础上 对系统进行了功能性需求分析 和非功能性需求分析 为下一步对系统进行详细设计和实现打下基础 其次 在需求分析的基础上 对系统进行了详细设计 提出了本文系统的设计目 标和原则 并从可扩展性 可维护性以及系统性能等方面对系统的技术架构进行了分 析 确立了系统的 MVC 三层架构模型 并对各层的功能进行了描述 根据药品进货 销售和库存管理的流程和特点 对系统进行了模块划分 并对各模块进行了详细的功 能设计 然后 根据药品的分类和管理特点对数据库进行了详细设计 利用 E R 关系图对 数据库设计进行了描述 并给出了详细的数据表设计 8 本文各章节内容组织如下 第一章 介绍了本文的研究背景和国内外研究现状 并阐述了本文的主要工作 并对调研过程中所发现的问题和相应解决方案进行了陈述 第二章 根据调研结果和实际管理流程对系统进行需求分析 主要包括功能性 非功能性需求分析和总体流程分析 为系统的详细设计和实现打下基础 第三章 对系统架构进行设计 确定了系统的体系架构 对系统开发技术和功能 架构进行了分析 提出了确保系统数据安全的安全性策略 第四章 详细描述了系统数据库设计 包括设计原则 逻辑设计和数据表设计 给出了系统数据库的总体 E R 图和详细的数据库表结构 第五章 对各个子系统进行实现 对系统的实现进行了描述 给出了关键代码以 及相应的注释说明 并对最终得到的系统进行了展示 结束语 对整个系统从需求分析到最终的实现过程做了总结 并对系统以后的进 一步研究提出了意见 2 2 系统需求分析系统需求分析 2 1 系统概述 医院药品进销存管理系统是集药品进货 销售 库存管理于一身的信息化管理系 统 其作为医院管理的一个重要组成部分 在医院管理中发挥着十分重要的作用 药品进销存管理系统是部署快 成本低 效果直观的医院内部信息系统 其在医 院的应用使得医药管理人员告别了效率低下的人工管理时代 其强大的信息录入 管 理 查询以及统计和报表生成功能 代替了以往的纸张登记 人工查询 更新 维护 和统计 全自动化管理和流程追踪使得药品的使用明细一目了然 为安全用药 放心 用药提供了坚实的基础 其在 HIS 系统中的融合 使得挂号 就诊 拿药和复诊趋于 一体化流程管理 节省了过往病人看病中复杂的流程 提高了医疗诊断的社会效率 伴随着信息化时代的发展 在这个分秒必争的竞争型社会中 医院也同样面临着 各种挑战 高效的信息管理是在激烈的竞争中立于不败之地的先决条件 药品进销存 管理系统作为一种信息化管理系统 其在医院的应用提高了医院内部数据信息的条理 性和准确度 规范了药品管理业务流程 提高了医院的管理水平和药品流动的透明度 加快了资金的周转速度 从而提高了医院的经营水平 提升了医院的经济效益 本文的系统总体分布模型 如下图 2 1 所示 9 图 2 1 系统分布模型图 2 2 系统功能性需求分析 统一软件开发过程一般采用用例图对系统的功能性需求分析进行描述 通过用例 图对系统的参与者和用例之间关系的描述 有利于以可视化的方式理解系统的功能需 求 本文系统根据前期调研和业务流程分析 确定了药品进销存管理系统的功能性需 求 该药品进销存管理系统可以分为四大功能六大模块 四大功能分别为 基本信息 管理 进货 需求管理 药品销售管理 系统管理 六大模块分别为 用户登 录 医药管理模块 类别管理模块 销售管理模块 进货 需求管理模块 系统管理模 块 系统总体用例图如图 2 2 所示 医药管理系统 基本信息管理进货 需求管理药品销售管理系统管理 药品信息管理 药品类别管理 销售明细管理 药品需求管理 销售排行管理 药品进货管理 销售时间统计 管理员账号管理 系统初始化 库存信息管理 登录 药品管理 类别管理 销售管理 进货 需求管理 管理 系统管理 管理员 10 图 2 2 系统总用例图 2 2 1 管理员登录 本系统是针对固定药店的药品的管理 所以只是提供了管理员的登录入口 并且 管理员账号也是固定的 没有再设置注册功能 但是在后面的系统管理模块中可以添 加管理员也可以删除管理员 在本文系统中登录管理系统并未将密码修改功能和登录 功能一同放在登录界面上 为了提高系统的安全性 将密码修改功能设计为登录后才 拥有该操作权限 具体用例图太简单了就不在此给出 2 2 2 药品管理 药品管理子系统主要管理药品信息的录入与维护 包括药品信息的增加 删除 修改 查询 同时把库存查看也放在这个模块中 增加功能主要是针对新入库药品和 合作供应商信息的录入 删除功能主要是针对弃用药品信息的删除 修改功能主要是 针对录入错误的药品信息的修改 包括对药品单价 库存数量 所属类别 出厂地址 的修改及更新 查询功能有查看药品 这时是把所有药品详细信息以表格形式列出 还有高级查询和模糊查询功能 高级查询时需要输入药品的详细信息 模糊查询主要 是通过输入药品名称关键字来查询 具体用例图如下图 2 3 所示 图 2 3 药品管理用例图 2 2 3 类别管理 其实药品分类十分重要 现在好多投入使用的医药管理系统都是药品分类不合理 导致低效率和错误 本系统的类别管理模块主要包括添加类别 查看类别 类别统计 功能 其中添加类别主要是添加类别名称和类别描述 查看类别就是把类别信息以表 药品管理 添加药品 删除药品 查询药品 高级查询 模糊查询 查看库存 11 格形式列出来 同时提供了修改和删除功能 其中删除类别时会连带把属于该类别的 药品信息也删除 类别统计功能会把类别分类以饼状图显示出来 计算出具体每个类 别占的百分比 具体用例图如图 2 4 所示 类别管理 添加类别 查看类别 类别统计 修改类别 删除类别 图 2 4 类别管理用例图 2 2 4 销售管理 本系统的销售管理模块主要是对销售明细的查看管理和查看销售排行 查看明细 时主要以表格形式列出所销售的药品信息 包括销售编号 药品名称 单价 销售数 量 销售金额 销售时间和操作员 同时提供了模糊查询功能 管理员可以通过输入 药品关键字来查看相关药品的销售情况 还有今日明细的查询 查看今日的销售记录 还有日期查询功能 管理员输入起始日期和结束日期来查看这段时间的销售记录 最 后有销售排行功能 根据各类药品的销售情况排序 是以销售数量为排序参数 在查 看销售排行的时候可以进行进货和查看药品操作 具体用例图如图 2 5 所示 图 2 5 销售管理用例图 2 2 5 进货 需求管理 本系统的进货 需求管理很简单 就是添加进货 通过输入药品编号来添加 然后 输入添加数量就完成了药品的需求 也可以添加库存中没有的药品 这时需要添加药 品的详细信息 和药品管理模块中的添加药品一样 还有查看进货的功能 这时显示 的是有需求药品但是还没有完成进货操作的药品 如果点击完成进货则完成了该药品 销售管理 查看明细 日期查询 销售排行 进货 查看药品 12 的进货需求 相应的药品信息也会更新 2 2 6 系统管理 本系统的系统管理模块主要包括添加管理员 查看管理员 删除管理员 修改密 码 系统初始化和退出系统功能 其中在查看管理员的时候提供删除管理员的功能 系统初始化主要是当药店想重新整理药品时用的功能 具体用例图如图 2 6 所示 系统管理 图 2 6 系统管理用例图 2 3 系统非功能性需求分析 非功能性需求一般指的是根据系统所实现的业务特点和性质 对系统的性能 可 靠性 可扩展性以及开发期的质量属性等方面的需求 根据对系统的使用环境以及业 务具体细节的分析 我们得到如下几个非功能性需求 1 性能方面 由于医院药品进销存管理系统主要是针对医院内部使用 主要涉及到数据的增 删 查 改以及数据的统计 而且 医院药品具有品种繁多 数量大 流动量大 流 动频繁等特点 因此 对非功能性需求中常需要考虑的用户数 吞吐量 数据存储量 等因素要求较低 但对数据库的操作响应要求较高 包括数据的查询 数据的修改以 及数据的删除等都需要有较快的响应 1 响应时间 本系统将各子系统分为日常频繁交互类 日常查询统计类和批量处 理类来分别考虑 日常频繁交互类 如药品销售子系统 其需要与 HIS 系统连接获得药方数据 属 于操作频繁而且响应时间要求相对较高的部分 因此 在设计时应该保证其高效性 如响应时间在 1 秒左右 日常查询统计类 如库存管理和查询统计子系统 其主要是对数据库中各种信息 的查询与数字运算 此类操作与查询条件的复杂度和数据库相应数据量的大小相关 虽然涉及到大量的数据库操作和统计运算工作 但是统计工作操作并不频繁 而且对 添加管理员 查看管理员 员 修改密码 系统初始化 退出系统 删除管理员 13 实时性的要求并不荀刻 因此 响应时间一般控制在 10 秒左右 2 用户数和吞吐量 由于本系统属于内部使用系统 并不对外开放 用户数比较 稳定 因此对用户数和吞吐量并不做特别的要求 3 数据存储量 医院药品数据虽然较多 但对于现代的数据库技术而言完全能够 承受 所以 设计时数据存储量也不做特别的要求 4 要求系统具有较好的安全性 采用身份验证和操作权限来保证系统的安全 不 同的用户具有不同的操作权限 不能进行越界操作 2 可靠性 系统的可靠运行需要硬件和软件两个部分的可靠支撑 对于硬件而言 根据医院 的经济条件选择相对较好的硬件配置 将硬件故障的风险降到最低 对于软件而言 保证软件设计的鲁棒性 由于药品进销存系统 尤其是销售子系统的可靠性与医院的 正常运行紧密相关 因此应保证系统具有较强的抗故障能力 容错能力和恢复能力 提供数据库的手动和自动备份与恢复功能 充分考虑用户可能执行的错误操作 比如数 据的漏填 错误的命名 数据格式的填写错误等 对于用户的错误操作给予错误提示 并向客户指引正确的操作提示 确保系统的可靠运行 由于进销存系统涉及到网络数 据的传输 对于网络数据的传输进行验证 确保无数据丢失 保证数据的正确性 3 扩展性 系统的扩展性主要是指系统使用过程中添加新的功能或模块 系统在使用过程中 难免会遇到新的需求 这就需要在系统开发设计的过程中 要充分考虑系统的可扩展 性 为以后系统的功能扩展预留接口 为以后的升级和维护提供便利 减少维护升级 成本 因此 在系统的开发和设计中应尽量保证系统的高内聚低耦合性 各模块功能 分明 釆用接口化设计 为系统的扩展打下良好的基础 4 整体性 将药品进销存系统作为医院信息化系统 HIS 的一个部分来设计 结合 HIS 的特点 和接口 遵循硬件 软件以及系统界面为整体的设计原则 采用面向对象的思想和接 口化方法进行设计和开发 增加系统与 HIS 的融合性 使得整个医院信息系统保持整 体性 5 节约性 在硬件选择和软件开发的过程中 秉承为用户节约成本的原则 根据医院现有硬 件和软件环境 充分利用医院已有的基础设施 如网络 服务器 PC 机等 来架构药品 进销存管理系统的实施环境 6 简单 实用性 由于系统使用人员的计算机水平和操作动手能力不尽相同 因此要求药品进销存 管理系统应该与先前版本系统的风格尽量保持一致 设计尽量简单 容易掌握 而且 布局要合理 避免用户需要花较长时间来适应各个操作界面 保证系统使用人员能很 快上手 提高系统的实施效率 7 可复用性 软件的复用性是指能够利用现存的设计和编码对系统进行二次开发 系统的大体 的框架可以借鉴最新的 已经成熟的 符合国际标准的系统架构和服务器技术以及网 络技术 自主设计和实现符合自己需求的模块和细节时也遵循同样的标准 这不仅保 14 证了系统的技术可行性和稳定性 还使得系统能够满足复用性 降低了系统的开发成 本 并为未来可能的二次开发打下良好的基础 8 开发期的质量属性 1 SQL 语句执行 由于药品进销存管理系统主要基于对数据库的操作 因此在设 计时应充分考虑对数据库操作语句的效率优化 在数据库设计时充分考虑对数据的优 化 使得在适应简单事务和增删查改等操作的同时 不减少复杂的动态 SQL 的查询优 化总量 尽量避免对全表进行查询 采用视图对数据库操作权限进行控制 采用索引 技术优化查询效率 尽量采取事务集中处理方式避免事务频繁更新 2 程序设计 因为药品进销存管理系统中的业务逻辑复杂 模块数量多 在操作 过程中会不断有新的对象产生 每个对象都会占用系统的资源 因此 应避免在循环 体内申明对象 对大的对象进行有效分解 尽量保证系统开销最小 避免系统内存溢 出 对系统整体采用模块化设计 采用接口技术保证系统简洁 各个类职能分明 保 证系统的高内聚低耦合性 2 4 系统总体流程分析 流程图是一种将工作流程用图解的方式直观呈现的图表 在规范的软件开发过程 当中经常用流程图来描述系统的整体流程分析 如下图 2 7 所示 医药管理系统 管理员登录 管理 员 基本信息管理 药品信息管理 药品类别管理 添加药品 查询药品 修改药品 删除药品 添加类别 查询类别 修改类别 删除类别 类别统计 15 图 2 7 医药管理系统流程图 图 2 7 医药管理系统流程图 续 系统的总体流程如下 首先管理员进入登录管理系统 输入用户名和密码 系统 进行身份验证 若账户不存在 在登录界面给出提示 若存在 进行密码验证 密码 验证错误需要重新输入 通过验证后 启动主控制模块 主控制模块查询数据库中账 号的权限信息 根据权限信息来决定该账户使用者能使用的子系统 管理员对自己所 能操作的子系统进行操作 完成操作后 确认保存所进行操作到数据库 至此 一次 完整的操作流程结束 在实际操作中 管理员保存操作到数据库后 仍能继续对本模 块或其他模块进行操作 如此完成整个系统的工作流程 直到管理员退出系统 系统管理 进货 需求管理 药品销售管理 管理 员 管理员登录 添加管理员 销售排行统计 当日明细统计 查询销售明细 库存修改 修改需求 删除需求 查询进货 添加需求 医药管理系统 查询管理员 密码修改 系统初始化 16 3 3 系统架构设计系统架构设计 3 1 系统软件架构分析 在开发项目前 首先要对软件的结构进行设计 也称之为软件架构 此过程是对 软件整体结构的设计 如软件的逻辑分层结构 结构的实现 数据库等 特别是在 Java 的大型项目中 还需要设计出程序中的包结构及接口等 非常复杂 需要程序员 进行全面的考虑 本医药管理系统由 4 层结构组成 并遵循 MVC 结构进行设计 4 层结 构分别为表示层 业务逻辑层 持久层与数据库层 如图 3 1 所示 图 3 1 逻辑分层 其中 表示层与业务逻辑层均由 Struts 框架组成 表示层用于提供程序与用户交 互的界面 项目中主要通过 JSP ActionForm 及 Struts 标签库进行展现 业务逻辑层 用于处理程序中的各种业务逻辑 项目中通过 Struts 框架的中央控制器及 Action 对 象对业务请求进行处理 持久层由 Hibernate 框架组成 负责应用程序与关系数据库 之间的操作 数据库层为应用程序所使用的数据库 本系统中为 MySQL 数据库 对于 4 层结构的具体实现如图 3 2 所示 图 3 2 逻辑分层具体实现 医药管理系统 表示层 Struts 框架 业务逻辑层 Struts 框架 持久层 Hibernate 框架 数据库层 MySQL 数据库 医药进销存管理系统 视图 JSP ActionForm Struts 标签 控制器 Action struts config xml 持久化 Hibernate API hibernate c fg xml MySQL 数 据 17 3 2 系统技术分析 3 2 1 MVC 模式 针对药品进销存管理系统在日常工作中所面向的服务对象的特点 本系统采用客 户端 应用服务器 数据库服务器三层体系结构 通过局域网网络通信 由于整个系 统涉及到用户交互 业务逻辑处理和数据库操作 因此 采用模型 视图 控制三层 分离的 MVC 设计模式来进行系统设计和开发 其体系结构如下图 3 3 所示 视图 事件 更新 控制器模型 更新 通知 图 3 3 MVC 三层架构 1 视图层 视图是系统直接呈现给用户 方便用户与系统进行交互的部分 MVC 将视图从逻辑 中分离 使得代码层次清晰 而且在处理多个不同视图与业务逻辑时清晰明了 视图 层主要负责将得到的数据呈现给用户 至于数据是如何得来的 视图层不关心 这就 保证设计人员可以不用过多的担心对视图层的修改会影响其它层 2 模型层 模型层在本系统中是对数据库进行操作和管理 这一层主要是数据库操作的实现 将各种数据库操作以接口的方式统一设计 能够使得系统适应大量数据的更新和检索 并提高执行效率 采用视图和存储过程的统一设计方式 不仅可以减少数据库处理操 作的代码重复量 还能提高数据库系统的安全性 3 控制层 控制层是整个系统的主体 它负责系统模型和视图之间的衔接 由控制层调用模 型层提供的服务获取反馈数据 然后将数据传给视图层呈献给用户 MVC 的处理流程 首先 控制器接收用户的请求 根据操作动作映射 决定调用哪 个模型来处理该请求 然后模型层处理该请求所涉及的业务逻辑 返回反馈数据 最 后控制器调用相应的视图将数据显示给用户 3 2 2 Struts Hibernate 框架 SSH 框架是轻量级的 Java 应用程序开发框架 其为 Struts Spring Hibernate 三个框架组成 其中 Struts 主要用于 B S 模式系统的开发 本文所设计系统采用 B S 模式 所以使用 Struts 与 Hibernate 进行整合开发 18 1 Struts 框架 Struts 框架实际上是对 MVC 各部分组件都提供了现成的实现组件 Struts 中的 Controller 控制器部分是通过特殊的 Servlet 来实现的 即 Struts API 中的 ActionServlet 实例 所有来自客户端的请求都统一由 ActionServlet 接收 再根据接 收的请求参数和 Struts 配置文件 struts config xml 将请求发送至合适的 Action Action 是 Struts 中比较重要的组件 去处理 在 Action 中 调用相应的模 型组件来完成应用的业务 并将执行的结果以 ActionForward 对象的形式返回给 ActionServlet 组件 再由 ActionServlet 将其显示给视图层 本系统中 Struts 框架 负责表示层和业务逻辑层的实现 2 Hibernate 框架 Hibernate 也是一个开源的框架 是一个纯 Java 的对象关系映射和持久性框架 它允许通过 XML 配置将对象模型表示的对象映射到 SQL 关系模型中 为数据的查询和 获取提供了便利 大幅度减少了开发人员人工编码 SQL 和 JDBC 来处理数据的时间 Hibernate 支持多种关系数据库 其在本系统中应用使得系统从一种数据库到另一种数 据库迁移时很方便 在没有使用 Spring 管理 Hibernate 的情况下 对 Hibernate 的管理仍然存在一定 的难度 特别是在 J2EE 开发中 线程安全 SessionFactory 对象 Session 对象 Hibernate 缓存及延迟加载等是程序设计中的难题 管理不当将会对程序造成极为严重 的影响 在医药管理系统中 将 SessionFactory 对象 Session 对象置于过滤器中 由过滤器对其进行管理 从而解决了这些问题 通过过滤器管理 Hibernate 的 Session 对象则可以避免此问题 其实现过程如图 3 4 所示 19 图 3 4 Hibernate 过滤器实现 3 3 系统功能架构设计 根据对系统需求的分析 系统分为管理员登录子系统 药品信息管理子系统 类 别信息管理子系统 销售信息管理子系统 进货 需求管理子系统和系统管理子系统 其中每个子系统又可以分为若干具体功能 系统功能具体划分如下图 3 5 图 3 5 系统功能架构 init 方法 初始化 SessionFactory doFilter 方法 过滤处理 业务处理 requestresponse destroy 方法 销毁 SessionFactory SessionFactory JSP 页面response 关闭 Session 业务请求request 药品进销存管理系统 用户登录管理 药品信息管理 类别信息管理 销售信息管理 进货 需求管理 系统管理 增 删 改 查药品信息 增 删 改 查 统计类别 查询明细 明细统计 销售排 行 增 删 改 查需求 修改库 存 增 查管理员 修改密码 系统初始化 20 4 4 系统数据库设计系统数据库设计 一个好的数据库设计 可以很好的优化数据库操作效率 提高数据库的安全性 现在较为流行的是建立在关系数据库模型基础上的关系数据库 其主要有以下几个特 点 1 数据高度结构化 关系数据库采用二维表作为数据结构 具有统一的结构类型 内部不存在复杂的 连接关系 简洁 使用方便 2 开发设计方便 关系数据库系统与系统内部结构不相关 能够较方便的利于采用非过程化开发语 言进行开发设计 通过应用程序和后台连接 方便了用户对数据的操作 3 便于访问数据 提供了诸如索引 存储过程 视图 触发器等对象 使得数据访问更方便 快捷 4 数据独立性高 关系数据库系统与物理存储和过程性因素无关 因此具有较高的物理独立性和程 序独立性 5 功能强大 关系数据库系统能够采用多表处理的方式 对多个模型进行操作 通过关系模型 将不同的模型联系起来 此外 关系数据库的路径选择很灵活 存储结构也比较简单 访问权限的控制 使其较以往的数据库更安全 6 理论支撑 关系数据库是基于关系运算和关系模式设计理论的 在理论工具的支撑下 对关 系数据库系统的进一步研究有了可靠保证 4 1 概念模型 针对本系统采用的是 MySQL 数据库系统 该数据库系统为关系型数据库 通过认 真分析系统得出该系统的四个 E R 图 一一列举如下 1 医药管理系统用户实体的关系 E R 图 21 user id username passwordcreateTime 图 4 1 用户实体 E R 图 2 医药管理系统药品实体的关系 E R 图 medicine id medNo name factoryAdddescription price medCount reqCountphotoPath categoryId 图 4 2 药品实体 E R 图 3 医药管理系统类别实体的关系 E R 图 图 4 3 类别实体 E R 图 4 医药管理系统销售实体的关系 E R 图 category id name descriptioncreateTime 22 selldetail id sellName sellPrice sellCount sellTime mediduserid 图 4 4 销售实体 E R 图 4 2 数据库设计原则 数据库设计时应遵循如下几个设计原则 1 标准化和规范化 对数据库进行设计时 应遵循数据库 3NF 设计原则 即每个表只包括其本身基本的 属性 对不属于自身属性的表进行分解 通过外键来连接各分解的表 2 考虑数据库变化 充分考虑到数据库中哪些字段在将来可能发生变化 并针对该变化预留扩展空间 3 增加删除标记字段 在表中设计一个删除标记字段 用以标记该行为删除状态 对于要删除的行先标 记然后集中处理 从而避免单独删除某行 4 使用索引 使用索引能提高数据库的查询性能 避免索引大型字段 避免索引常用的小型表 5 采用视图 视图为应用程序代码和数据库之间提供一个抽象层 在数据库设计时 可以采用 视图来避免应用程序对数据表的直接访问 这也为数据库变更时提供了更多的自由和 扩展空间 6 避免使用触发器 采用触发器的程序难以调试 通常采用其他方式代替 4 3 系统数据表 根据对系统的需求分析 对数据库进行建模 确定数据库以及每个数据表中各个 字段属性和各表之间的关系如以下各表所示 23 表 4 1 用户信息表 tb user 列名称列名称数据类型数据类型长度长度是否非空是否非空主键主键注释注释 idInt11FALSETRUE 用户 ID usenameVarchar50FALSEFALSE 用户名 passwordVarchar50FALSEFALSE 密码 CreateTimeDatetimeTRUEFALSE 创建时间 表 4 2 药品信息表 tb medicine 列名称列名称数据类型数据类型长度长度是否非空是否非空主键主键注释注释 idInt11FALSETRUE 用户 ID medNoVarchar100FALSEFALSE 药品编码 nameVarchar200FALSEFALSE 药品名称 factoryAddVarchar200TRUEFALSE 出厂地址 descriptionTextTRUEFALSE 描述信息 priceDoubleFALSEFALSE 药品单价 medCountInt11TRUEFALSE 库存数量 reqCountInt11TRUEFALSE 需求数量 photoPathVarchar255TRUEFALSE 图片 categoryIdInt11TRUEFALSE 所属类别 表 4 3 类别信息表 tb category 列名称列名称数据类型数据类型长度长度是否非空是否非空主键主键注释注释 idInt11FALSETRUEID nameVarchar100FALSEFALSE 类别名称 descriptionTextTRUEFALSE 描述信息 CreateTimeDatetimeTRUEFALSE 创建时间 24 表 4 4 销售信息表 tb selldetail 列名称列名称数据类型数据类型长度长度是否非空是否非空主键主键注释注释 idInt11FALSETRUE 用户 ID sellNameVarchar200FALSEFALSE 药品名称 sellPriceDoubleFALSEFALSE 销售单价 sellCountInt11FALSEFALSE 销售数量 sellTimeDetetimeFALSEFALSE 销售时间 MedidInt11TRUEFALSE 药品 ID useridInt11TRUEFALSE 用户 ID 5 5 系统实现系统实现 5 1 系统开发环境 本系统采用 Windows7 为系统平台 在 MyEclipse 平台 JDK1 6 版本下 采用 Struts Hibernate 框架开发 由于本系统使用了 Hibernate 框架技术 因此数据库移 植很简单 所以 本系统将 MySQL 作为开发设计时所使用的数据库 实际部署时可以 根据需求修改配置文件更换数据库 5 2 系统实现 5 2 1 管理员登录 用户登录界面是系统使用者最先看到的系统界面 只有验证通过之后 用户才能 进入系统进行相关操作 本文所设计系统的用户登录如图 5 1 所示 由于本系统的使 用者相对固定 而且 所有使用者的账号需要由系统管理员统一进行设定并分配使用 权限 用户填写用户名和密码信息后 点击 登录 按钮 后台进行身份验证 账户密 码验证 验证通过后用户便可进入系统主界面进行操作 为了系统的安全 本文系统 将修改密码功能设计为登录后在主界面中进行 如图 5 2 所示 而不是在登录界面中 提供此功能 用户登录系统后 进入个人密码修改功能菜单 输入原始密码和新密码 单击 提交 按钮即可完成对密码的修改 25 图 5 1 系统登录界面 图 5 2 密码修改界面 5 2 2 药品管理模块 药品管理模块包括药品信息的录入与维护两个部分 药品信息录入与维护功能主 要用于对新进药品信息的添加 以及已入库药品信息的修改和不再使用的药品信息的 删除 这个模块的实现关键是用户信息填写检查并给出提示以及向数据库进行数据传 递 所以重点和难点在于数据库操作的准确性 实时性和完整性 管理员登录进入界面后有个医药管理模块按钮 展开后有添加药品 查看药品 高级查询和查看库存四个按钮 单击 添加药品 按钮会出现如图 5 3 所示界面 输 入各项信息并提交即可完成药品信息的添加 单击 查看药品 按钮会出现如图 5 4 所示界面 以表格形式列出药品信息 包括药品 ID 药品编码 单价 库存数量 需 求数量和出厂地址 同时提供了进货 修改 购买 删除四个功能 这些功能很好地 考虑了实际应用中的操作 在查看药品的时候自然会对其进行相关操作 在高级查询 时列出了药品 ID 药品编码 药品名称 出厂地址和描述 5 个输入框 用户可以通过 在任何一个或几个输入框中输入相关信息来查询药品 查看库存功能是通过输入库存 范围 包括等于 大于 小于 来查看库存中符合数量的药品 26 图 5 3 添加药品信息界面 图 5 4 查看药品信息界面 5 2 3 类别管理模块 类别管理模块下面有三个主功能分别为添加类别 查看类别和类别统计 添加类 别时 管理员需要输入类别名称和类别描述就完成了类别的添加 只要该类别药品添 加管理员可以在药品管理模块中完成 点击 查看类别 时会出现如图 5 5 所示的界 面 以表格的形式列出所有类别信息包括类别编号 类别名称 类别描述和创建时间 其中还提供修改类别和删除类别的操作 点击 类别统计 时会出现如图 5 6 所示的 界面 该界面以饼状图的形式显示各药品类别所占的百分比 以不同的颜色区别不同 的类别 图 5 5 类别信息界面 27 图 5 6 药品类别统计图 5 2 4 销售管理模块 销售管理模块主要是查看销售明细和对销售数量进行排行 当点击 查看明细 时会出现如图 5 7 所示的界面 以表格形式列出销售明细包括销售编号 药品名称 单价 数量 金额 销售时间和操作员 还有 今日明细 的功能 点击可以显示今 天销售的情况 日期查询功能需要管理员输入起始日期和结束日期 点击查询按钮后 会显示在这段时间销售明细 点击 销售排行 后会出现如图 5 8 所示的界面 这个 排行是根据销售金额从高到低排序的 表格最后一栏还提供进货和查看药品的操作 图 5 7 销售明细查看 图 5 8 销售排行查看 5 2 5 进货 需求管理模块 进货 需求管理模块比较简单 有添加进货和查看进货两个主功能 点击 添加进 28 货 后首先是输入药品编号 这时如果是已经存在的药品就在数据库查询出该药品信 息 点击提交后后出现如图 5 9 所示的界面 这里列出药品编号 药品名称 单价 出厂地址和描述 其中数量是需要管理员输入的 输入框后面有目前库存数量的提示 也可以添加库存中不存在的药品 点击 查看进货 时出现如图 5 10 所示界面 该界 面以表格形式列出所需药品信息包括药品 ID 药品编号 药品名称 单价 库存数量 需求数量和出厂地址 表格最后一栏会提供修改和进货完成操作 点击修改后可以修 改需求数量 点击进货完成后该需求信息就会删除 相应的药品信息也会更新 图 5 9 需求更新添加进货 图 5 10 查看进货界面 5 2 6 系统管理模块 系统管理模块包括添加管理员 查看管理员 修改密码 系统初始化和退出系统 5 个部分 系统管理员进入 系统管理 菜单项 打开 添加管理员 子菜单 进入如 图 5 11 所示界面 需要输入用户名和密码 点击提交后就完成了管理员的添加功能 打开 查看管理员 子菜单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院西门子DSA维保项目服务方案投标文件(技术方案)
- 房地产行业智能估价与交易服务平台
- 二零二五年度成都离婚协议公证服务合同范本及所需材料准备说明
- 二零二五版个人心理咨询消费借款合同范本
- 2025年度智能门窗生产车间内部承包经营合同书
- 智能汽车自动驾驶技术开发合作合同
- 《道路车辆自动驾驶传感器与数据融合单元间数据通信逻辑接口》
- 金融科技在普惠金融中的金融科技信贷产品创新效果评估报告
- 冰雪运动培训基地项目人力资源配置与培训计划报告
- 金融租赁行业业务模式创新与风险管理报告:2025年市场机遇与风险控制策略分析
- 2025年广西林业局直属事业单位招聘考试笔试高频重点提升(共500题)附带答案详解
- 2025年中国华能集团公司招聘笔试参考题库含答案解析
- 2025年浙江广电集团招聘笔试参考题库含答案解析
- 《ECMO安装及预充》课件
- 基因检测经销合同协议书
- 2024年河北省廊坊市“硕博”招聘42人历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 2023第五届全国应急管理普法知识竞赛题库及答案(1035题)
- 物业个人充电桩免责协议书
- DZ∕T 0204-2022 矿产地质勘查规范 稀土(正式版)
- 2024广西专业技术人员继续教育公需科目参考答案(99分)
- 森林功能区划与分类经营方案
评论
0/150
提交评论