【论文】冀东天然气居民收费系统的设计与实现.pdf_第1页
【论文】冀东天然气居民收费系统的设计与实现.pdf_第2页
【论文】冀东天然气居民收费系统的设计与实现.pdf_第3页
【论文】冀东天然气居民收费系统的设计与实现.pdf_第4页
【论文】冀东天然气居民收费系统的设计与实现.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

【论文】冀东天然气居民收费系统的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

冀东天然气居民收费系统的设计与实现 摘 要 摘 要 随着社会的进步 计算机应用日益广泛 各行各业对生产管理的自动化 信 息化 系统化的要求也不断提高 燃气事业的发展日益提高 燃气销售公司查表收 费管理工作不断加强 查表收费业务也逐步纳入了规范化的轨道 本居民收费系统采用 b s 结构 java 技术 my sql 数据库 mvc 设计思想 struts hibernate 框架 建立相应的网络数据库支持环境 采用人工录入居民用户 信息和抄表信息等 从数据库提取数据信息并进行分析 以便于掌握天然气使用及 销售情况 整个系统分为六个模块 用户信息管理 安装收费管理 购气收费管理 抄表管理 通气合同管理和数据处理 管理员可以对各模块的信息进行添加 修改 删除 查询和统计等操作 还可以将各信息数据备份出来 一面在服务器瘫痪的时候 所有的信息都会消失 造成损失 b s 结构事务逻辑主要在服务器端 server 实现 这样就简化了客户端电脑载荷 降低了用户的成本 struts 和 hibernate 将系统的表 示层 业务逻辑层和核心控制层分开 在对系统进行升级或更改使用的技术时各层 之间不会有很大的影响 本文主要是为了改变燃气公司以往的高劳动强度 低效率的情况 在工作方面 做一定的改善 完成各信息的管理及维护工作 实现居民天然气收费信息化 系统 化 便捷化 高效化 关键词 关键词 天然气收费 居民 系统设计 b s java my sql my eclipse struts hibernate i 冀东天然气居民收费系统的设计与实现 abstract with the advancement of our society an increasingly wide range of computer applications from various industries on the production and management of automation information and systematized the request is also rising gas development of the cause of rising gas inventory charges sales company management has been strengthened table look up fee business also gradually integrated into the standardized track charging system of the residents of b s structure java technology my sql database mvc design concepts struts hibernate framework the establishment of the corresponding web based database to support the environment residents of the user manual input of information and information such as meter reading data from the database of information extracted and analyzed in order to grasp the use and sale of natural gas the whole system is divided into six modules a user information management and installation charges management fees to buy gas management meter management ventilation management and data processing contract administrators can block the information of all add modify delete query and any others operating statistics you can also back up all data out of the paralysis on the server side when all information will disappear resulting in the loss b s structure business logic mainly in server side server to achieve so that the client computer to simplify the load and reduce the cost of the user struts and hibernate said the system layer business logic tier and separate from the core control layer in the system to upgrade or change the use of technology at all levels will not have a great impact in this paper gas companies in order to change the past the high labor intensity low efficiency the work done in a certain degree of improvement in the completion of the information management and maintenance work the realization of natural gas charges residents information systematic convenient and efficient key words natural gas charging residents system design b s my sql java my eclipse struts hibernate ii 冀东天然气居民收费系统的设计与实现 目 录 第一章 绪论 1 1 1 选题背景 1 1 2 研究的意义 1 1 3 研究的基本问题 2 1 4 本章小结 2 第二章 系统分析 3 2 1 需求分析描述 3 2 1 1 功能分析 3 2 1 2 性能分析 4 2 2 系统结构框架分析 5 2 2 1 mvc设计思想 5 2 2 2 hibernate框架 6 2 2 3 系统结构框架 7 2 3 系统分析模型 8 2 3 1 系统用例模型 8 2 3 2 系统分析模型 9 第三章 系统设计 12 3 1 系统设计模型 12 3 2 数据库设计 14 3 3 本章小结 18 第四章 系统实现 19 4 1 系统功能 19 4 2 系统界面 21 4 2 1 jsp技术 21 4 2 2 管理员登录 23 4 2 3 用户信息 26 4 2 4 用户安装收费信息 29 4 2 5 用户购气收费信息 30 4 2 6 用户抄表信息 30 4 2 7 通气合同签订信息 31 4 3 本章小结 32 第五章 结论与展望第五章 结论与展望 33 参考文献 34 致 谢 35 iii 冀东天然气居民收费系统的设计与实现 附 录 1 36 附 录 2 43 声 明 52 iv 冀东天然气居民收费系统的设计与实现 第一章 绪论 1 1 选题背景 根据天然气的广泛使用 人工煤气已逐步退出燃气市场 天然气将成为城市的 主气源 原来的燃气收费系统又存在着很多的弊端 以前 完全采用手工的收费方式 查表员携带查表卡片 计算器和笔入户查表 的同时 手工给一个单元的燃气用户或一户开出 燃气费缴费通知单 用户持此 收费单据到银行柜台用现金交费 交费后单据其中一联用户留存 一联银行备查 一联返回燃气公司 燃气公司分单员收到银行返回的单据后 先手工按各管理所分 拣单据并与银行核算金额 然后将单据分发到各管理所 最后由各管理所的内勤员 分拣单据给各查表员进行销账 并依据销账结果进行催缴欠费工作 这种方式单据 处理效率低 单据出错率高 管理方式落后 对用户信息的查找困难 为此 冀东燃气公司准备开发 天然气居民收费系统 来解决这一问题 1 2 研究的意义 随着燃气事业的发展 燃气销售公司查表收费管理工作不断加强 查表收费业 务也逐步纳入了规范化的轨道 过去 手工收费的方式对单据处理效率低 单据出 错率高 管理方式落后 对用户信息的查找困难 本系统结合天然气公司发展和进 一步深化管理的需要 为天然气公司在用户信息管理 抄表 收费管理 购气管理 和数据处理等方面提供智能综合化的服务 有利于天然气公司节约人力和财力 有 利于天然气公司实时掌握当前的经营状况 堵住漏洞 提高经济效益 使整个公司 在生产效率和综合管理水平方面上一个新台阶 同时让燃气公司的工作更加简洁 高效 随着社会的进步 计算机应用日益广泛 各行各业对生产管理的自动化 信息 化 系统化的要求也不断提高 因而 降低劳动强度 提高劳动效率也就成为必然 在各城市的管道燃气供应服务系统中 燃气收费系统已经发挥了重要的作用 这个系统开发目的正是为天然气公司提高生产效率 提高管理水平服务 本系统围 绕天然气公司的核心业务 用户管理 抄表管理 交费管理 报表和以此为基础的 1 冀东天然气居民收费系统的设计与实现 各种查询统计 满足各个业务部门的不同工作需要 并将各种需求有机结合在一起 燃气用户收费及管理系统的出现大大提高了工作效率 降低了工作难度 使原本复 杂繁琐的工作变得快速高效 同时使用户的消费更加经济 便捷 1 3 研究的基本问题 为了提高天然气公司在用户信息管理 抄表 收费管理 购气管理和数据处理 等方面的不足 本课题研究主要研究的内容即为系统管理人员对用户信息的查询 更新及用户数量的统计 交款的查询及修改 预购气的查询和修改 通气合同的签 订 抄表信息以及数据表的处理等 可以实时的更新用户的数据信息 还可以方便 的导入导出数据表 更能方便的查看数据信息 这样不仅有利于天然气公司节约人 力和财力 还有利于天然气公司实时掌握当前的经营状况 堵住漏洞 提高经济效 益 使整个公司在生产效率和综合管理水平方面上一个新台阶 同时让燃气公司的 工作更加简洁 高效 1 4 本章小结 本章主要是了解用户的需求 进行需求分析及系统规划 改变燃气公司以往的 高劳动强度 低效率的情况 在用户信息管理 查表收费管理等工作方面不断加强 也使各项业务逐步进入了信息化 系统化的轨道 2 冀东天然气居民收费系统的设计与实现 第二章 系统分析 2 1 需求分析描述 随着社会的进步 计算机应用日益广泛 各行各业对生产管理的自动化 信息 化 系统化的要求也不断提高 燃气事业的发展日益提高 燃气销售公司查表收费 管理工作不断加强 查表收费业务也逐步纳入了规范化的轨道 燃气公司在设计居 民燃气市场的服务时 不仅需考虑前台服务人员和后台支持人员的工作清晰衔接 还需考虑简化业务流程 尽量使流程快速 容易和便宜 以降低企业营运成本 简 洁清晰的业务流程 不仅可节约用户的时间和精力 还可有效减少资源投入 从而 降低了公司的运营成本 为了改善单据处理效率低 出错率高 管理方式落后 对用户信息的查找困难 开发了这个居民天然气收费系统 2 1 1 功能分析 本系统是围绕天然气公司的核心业务 居民用户管理 抄表管理 购气收费管 理 安装收费管理 通气合同的签订和以此为基础的各种查询统计 满足各个业务 部门的不同工作需要 并将各种需求有机结合在一起 系统功能目标包括以下六个模块 1 用户信息的管理 主要包括用户信息的录入 用户信息的修改和用户数量的统计 在这个模块中 可以现实全部显示用户的信息内容 也可以单个的查询某一个用户的详细信息 方 便里管理人员对用户信息的查找 还可以对用户某个信息的修改 统计某个小区天 然气用户的数量 对小区内使用天然气用户各方面的维护工作 2 购气收费信息 主要包括购气数量 购气单价等购气内容的修改 方便用户和管理人员对使用 燃气情况的查询 以便用户忘记购买天然气 造成无法正常使用 3 安装收费信息 主要包括安装收费次数 赠气数量 收费金额以及安装情况 这个模块中可以 3 冀东天然气居民收费系统的设计与实现 显示用户首次安装缴费的情况 如果用户是一次性交费的 可以享受赠气优惠 4 通气签订合同 主要包括通气签订合同和通气合同的修改 这个部分是用户预购气之后 与公 司签订购气合同 保证双方的利益 公司可应根据合同给用户正常通气 5 抄表信息 主要包括抄表记录 抄表修改和用气量的统计 此模块记录了用户用气的情况 方便记录缴费 6 数据处理 系统中所有数据都保存在服务器上 管理员可以通过这个模块将数据进行导 入 导出的工作 可以直接在工作表中浏览数据 操作简单 方便 2 1 2 性能分析 从实用 好用的角度出发开发居民天然气收费系统 在设计过程中主要考虑以 下原则 1 可操作性 原始信息皆由各相关部门录入 系统应尽量减少操作员的数据录入量 录入数 据尽量通过设计下拉列表框来选择录入 这样的处理同时也避免了许多录入异常现 象的发生 数据输入的格式应符合业务习惯 并且直观 方便 要求系统处理的数 据能准确无误 同时输出信息要求直观 简洁 2 可靠性 系统运行具有较高的可靠性 提供严格的并发控制 确保数据的一致性和正确 性 3 实用性 从用户的实际需要出发进行系统开发 结合自身的知识技能水平 选择合适的 开发技术以及制定合理的系统功能和结构 4 安全性 系统安全措施可靠 高效 可维护性好 有权限控制 口令控制 临时锁定控 制 其中口令录入界面便于系统识别登录用户 5 可维护性 为了保证系统的可维护性 要求具有详细的文档资料 同时 要求系统在功能 设计上考虑可扩展性 以满足业务变动的需求 4 冀东天然气居民收费系统的设计与实现 6 可移植性 系统开发完成后 要能运行于任何由 windows nt windows 9x 操作系统所构成 的计算机网络环境下 2 2 系统结构框架分析 本居民收费系统采用 b s 结构 mvc 设计思想 struts hibernate 框架 建 立相应的网络数据库支持环境 采用人工录入居民用户信息和抄表信息等 从数据 库提取数据信息并进行分析 以便于掌握天然气使用及销售情况 完成各信息的管 理及维护工作 实现居民天然气收费信息化 系统化 便捷化 高效化 2 2 1 mvc 设计思想 mvc 即 model view controller 即把一个应用的输入 处理 输出流程按照 model view controller 的方式进行分离 这样一个应用被分成三个层 模型 层 视图层 控制层 struts 是 mvc 模式的重要体现 视图 view 代表用户交互界面 对于 web 应用来说 可以概括为 html 界面或 jsp 页面等 随着应用的复杂性和规模性 界面的处理也变得具有挑战性 一个应 用可能有很多不同的视图 mvc 设计模式对于视图的处理仅限于视图上数据的采集 和处理 以及用户的请求 而不包括在视图上的业务流程的处理 业务流程的处理 交予模型 model 处理 比如一个收费单的视图只接受来自模型的数据并显示给用 户 以及将用户界面的输入数据和请求传递给控制和模型 模型 model 就是业务流程 状态的处理以及业务规则的制定 业务流程的处 理过程对其它层来说是黑箱操作 模型接受视图请求的数据 并返回最终的处理结 果 业务模型的设计可以说是 mvc 最主要的核心 目前流行的 ejb jsp servlet java bean 模型就是一个典型的应用例子 它从应用技术实现的角度对模型做了进 一步的划分 以便充分利用现有的组件 但它不能作为应用设计模型的框架 它仅 仅告诉我们按这种模型设计就可以利用某些技术组件 从而减少了技术上的困难 mvc 并没有提供模型的设计方法 而只告诉我们应该组织管理这些模型 以便于模 型的重构和提高重用性 我们可以用对象编程来做比喻 mvc 定义了一个顶级类 告诉它的子类只能做这些 但没法限制能做这些 业务模型还有一个很重要的模型那就是数据模型 数据模型主要指实体对象的 数据保存 持续化 比如将一条用户信息保存到数据库 从数据库获取用户信息 5 冀东天然气居民收费系统的设计与实现 我们可以将这个模型单独列出 所有有关数据库的操作只限制在该模型中 控制 controller 可以理解为从用户接收请求 将模型与视图匹配在一起 共 同完成用户的请求 划分控制层的作用也很明显 它清楚地告诉我们 它就是一个 分发器 选择什么样的模型 选择什么样的视图 可以完成什么样的用户请求 控 制层并不做任何的数据处理 例如 用户点击一个连接 控制层接受请求后 并不 处理业务信息 它只把用户的信息传递给模型 告诉模型做什么 选择符合要求的 视图返回给用户 因此 一个模型可能对应多个视图 一个视图可能对应多个模型 模型 视图与控制器的分离 使得一个模型可以具有多个显示视图 如果用户 通过某个视图的控制器改变了模型的数据 所有其它依赖于这些数据的视图都应反 映到这些变化 因此 无论何时发生了何种数据变化 控制器都会将变化通知所有 的视图 导致显示的更新 模型 视图 控制器三者之间的关系和各自的主要功能 如图 3 1 所示 图 2 1 mvc 模型 2 2 2 hibernate 框架 hibernate 是一个开放源代码的对象关系映射框架 它对 jdbc 进行了非常轻 量级的对象封装 使得 java 程序员可以随心所欲的使用对象编程思维来操纵数据 库 hibernate 可以应用在任何使用 jdbc 的场合 既可以在 java 的客户端程序使 用 也可以在 servlet jsp 的 web 应用中使用 最具革命意义的是 hibernate 可 6 冀东天然气居民收费系统的设计与实现 以在应用 ejb 的 j2ee 架构中取代 cmp 完成数据持久化的重任 hibernate 的核心接口一共有 5 个 分别为 session sessionfactory transaction query 和 configuration 这 5 个核心接口在任何开发中都会用到 通过这些接口 不仅可以对持久化对象进行存取 还能够进行事务控制 下面对这 五的核心接口分别加以介绍 session 接口 session 接口负责执行被持久化对象的 crud 操作 crud 的任 务是完成与数据库的交流 包含了很多常见的 sql 语句 但需要注意的是 session 对象是非线程安全的 同时 hibernate 的 session 不同于 jsp 应用中的 httpsession 这里当使用 session 这个术语时 其实指的是 hibernate 中的 session 而以后会将 httpsesion 对象称为用户 session sessionfactory 接口 sessionfactroy 接口负责初始化 hibernate 它充当数 据存储源的代理 并负责创建 session 对象 这里用到了工厂模式 需要注意的是 sessionfactory 并不是轻量级的 因为一般情况下 一个项目通常只需要一个 sessionfactory 就够 当需要操作多个数据库时 可以为每个数据库指定一个 sessionfactory configuration 接口 configuration 接口负责配置并启动 hibernate 创建 sessionfactory 对象 在 hibernate 的启动的过程中 configuration 类的实例首 先定位映射文档位置 读取配置 然后创建 sessionfac transaction 接口 transaction 接口负责事务相关的操作 它是可选的 开 发人员也可以设计编写自己的底层事务处理代码 query 和 criteria 接口 query 和 criteria 接口负责执行各种数据库查询 它 可以使用 hql 语言或 sql 语句两种表达方式 2 2 3 系统结构框架 struts 和 hibernate 将整个系统划分为三部分 第一部分为客户端 用户通过客户端安装有浏览器的电脑与 web 服务器建立网 络连接 第一部分与第二部分之间用 struts 将两部分分开 第二部分为业务逻辑层面 这部分主要是对用户提交的数据进行分发处理 最终将信息提交到数据库 第二部分和第三部分之间用 hibernate 分开 第三部分为服务器 也是数据库 存储部分 用户提交的信息传入到数据库中 数据库服务处理用户请求 并将查询 7 冀东天然气居民收费系统的设计与实现 到的结果传给客户端 这样分成的系统框架结构有三个优点 首先 系统中任何一个部分出现问题 只要对有问题的部分进行处理修改 不 会影响其他部分 其次 在系统升级的时候 只要改动其中的某个部分就可以了 不会影响其他 部分 最后 这样做也具有一定得可移植性 如果需要做一个其他方面的系统 使用 的技术不同 也可以更改 不会影响其他部分 2 3 系统分析模型 2 3 1 系统用例模型 根据对用户的需求分析 本系统的主要参与者是冀东天然气公司的有关收费管 理人员 用户 次要参与者 不与系统直接接触 当有需要的时候 他可以通过管 理员查询自己的相关信息 管理员通过身份认证并成功登录系统 根据需要对用户信息录入 查询 修改 删除等操作 用户同意选用本燃气公司的天然气后 为保证双方的利益 要签订通 气合同 合同要录入并提交到数据库 同时 需要更改用户的通气状态 签订合同 后 用户预交安装费用 管理员会把该用户需求报有关部门 有关部门会入户安装 燃气表 用户也可以在安装前预购一些天然气 系统管理员将用户购气信息添加并 提交到系统数据库中 还可以根据用户或单位需要对用户购气的信息查询 修改 删除 统计等操作 用户使用天然气一段时间后 会有专门的工作人员在一定的间 隔时间后去用户抄表 系统管理员将抄表的信息录入到系统中 用户根据自己的用 气量交费 最后有一个数据处理 可以对数据信息初始化 还可以导出 备份出系 统中所有的信息 避免数据的丢失 8 冀东天然气居民收费系统的设计与实现 图 2 2 用例图 2 3 2 系统分析模型 根据用例模型可以建立最基本的分析模型类图和交互图 下图表述了系统中各类之间的关系 一个用户只能签订一份通气合同 所以 他们之间是一对一的关系 一个用户可以多次购气 交费 所以对应多条购气信息 和多个收费信息 工作人员不同时期到用户去抄表 一个用户对应多条抄表信息 图 2 3 分析阶段的类图 9 冀东天然气居民收费系统的设计与实现 交互图描述了对个对象之间的行为 图 2 4 用户信息 顺序图 管理员登录系统后 可以对用户信息进行录入 修改 删除 查询和统计操作 还可以通过用户编号 用户姓名和用户地址查询用户信息 图 2 5 抄表信息 顺序图 管理员登录系统后 将抄表员从用户抄来的数据信息录入到系统中 包括用户 基本信息 天然气的单价 上次用气剩余量 本次用气剩余量 抄表日期等并且可 以根据需要 通过用户编号 用户姓名和用户地址查询到用户的抄表信息 并对信 息进行修改 删除和统计工作 10 冀东天然气居民收费系统的设计与实现 图 2 6 用户购气 顺序图 管理员登录系统后 将用户购气的数据信息录入到系统中 包括购气编号 购 气数量 购气单价以及购气日期等 还可以通过用户编号 用户姓名和用户地址查 询到用户的购气相关信息 并对信息进行修改 删除和统计工作 11 冀东天然气居民收费系统的设计与实现 第三章 系统设计 3 1 系统设计模型 系统的设计模型的构架和分析模型构架是一样的 只是 它更方便设计阶段代 码的实现 从分析到设计的过渡更平滑 在设计过程中 类的属性和方法 数据类 型 方法参数等更有利于代码的实现 界面原型绘制也更为简单 图 3 1 显示了实体类的属性及方法 图 3 1 设计阶段类图 设计阶段交互图 12 冀东天然气居民收费系统的设计与实现 图 3 2 设计阶段 user 顺序图 管理员登录系统后 对用户信息的操作 可以通过调用 user 中的 useradd userupd userdelete userstat 和 query 方法来实现对用户 信息的添加 修改 删除 统计和查询 图 3 3 设计阶段 fee gas 顺序图 管理员登录系统 对用户购气收费信息的操作 可以通过调用 fee gas 中的 feeadd feeupd feedelete feestat 和 query 方法来实现对用户购气 收费信息的添加 修改 删除 统计和查询 13 冀东天然气居民收费系统的设计与实现 3 2 数据库设计 关系型数据库是当前广泛应用的数据库类型 关系数据库设计是对数据进行组 织化和结构化的过程 核心问题是关系模型的设计 对于数据库规模较小的情况 我们可以比较轻松的处理数据库中的表结构 然而 随着项目规模的不断增长 相 应的数据库也变得更加复杂 关系模型表结构更为庞杂 这时我们会发现我们写出 来的 sql 语句的是很笨拙并且效率低下的 更糟糕的是 由于表结构定义的不合理 会导致在更新数据时造成数据的不完整 因此 我们要掌握数据库的规范化流程 使我们更好的设计数据库的表结构 减少冗余的数据 借此可以提高数据库的存储 效率 数据完整性和可扩展性 要设计规范化的数据库 就要求我们根据数据库设计范式 也就是数据库设 计的规范原则 在数据库设计中 简洁 结构明晰的表结构对数据库的设计是相当 重要的 规范化的表结构设计 在以后的数据维护中 不会发生插入 insert 删除 delete 和更新 update 时的异常 反之 数据库表结构设计不合理 不 仅会给数据库的使用和维护带来各种各样的问题 而且可能存储了大量不需要的冗 余信息 浪费系统资源 数据应该尽可能少地冗余 这意味着重复数据应该减少到最少 比如说 一个 居民用户的电话不应该被存储在不同的表中 因为这里的电话号码是居民用户的 一个属性 如果存在过多的冗余数据 这就意味着要占用了更多的物理空间 同时 也对数据的维护和一致性检查带来了问题 当这个居民用户的电话号码变化时 冗 余数据会导致对多个表的更新动作 如果有一个表不幸被忽略了 那么就可能导致 数据的不一致性 关系数据库的几种设计范式介绍 1 第一范式 1nf 在任何一个关系数据库中 第一范式 1nf 是对关系模式的基本要求 不满 足第一范式 1nf 的数据库就不是关系数据库 所谓第一范式 1nf 是指数据库表的每一列都是不可分割的基本数据项 同 一列中不能有多个值 即实体中的某个属性不能有多个值或者不能有重复的属性 如果出现重复的属性 就可能需要定义一个新的实体 新的实体由重复的属性构成 新实体与原实体之间为一对多关系 在第一范式 1nf 中表的每一行只包含一个 实例的信息 例如 居民用户信息表 不能将居民用户信息都放在一列中显示 也 14 冀东天然气居民收费系统的设计与实现 不能将其中的两列或多列在一列中显示 居民用户信息表的每一行只表示一个居民 用户的信息 一个居民用户的信息在表中只出现一次 简而言之 第一范式就是无 重复的列 2 第二范式 2nf 第二范式 2nf 是在第一范式 1nf 的基础上建立起来的 即满足第二范式 2nf 必须先满足第一范式 1nf 第二范式 2nf 要求数据库表中的每个实例 或行必须可以被惟一地区分 为实现区分通常需要为表加上一个列 以存储各个实 例的惟一标识 如居民用户信息表中加上了用户编号 userid 列 因为每个用户 的用户编号是惟一的 因此每个居民用户可以被惟一区分 这个惟一属性列被称为 主关键字或主键 主码 第二范式 2nf 要求实体的属性完全依赖于主关键字 所谓完全依赖是指不 能存在仅依赖主关键字一部分的属性 如果存在 那么这个属性和主关键字的这一 部分应该分离出来形成一个新的实体 新实体与原实体之间是一对多的关系 为实 现区分通常需要为表加上一个列 以存储各个实例的惟一标识 简而言之 第二范 式就是非主属性非部分依赖于主关键字 3 第三范式 3nf 满足第三范式 3nf 必须先满足第二范式 2nf 简而言之 第三范式 3nf 要求一个数据库表中不包含已在其它表中已包含的非主关键字信息 例如 存在通 气合同信息表 其中每个包括居民用户编号 userid 通气合同编号 通气签订 日期等信息 通气合同信息表中列出居民用户编号后就不能再将用户姓名 用户联 系方式等与居民信息有关的信息再加入到通气合同信息表中 否则就会有大量的数 据冗余 简而言之 第三范式就是主属性不依赖于其它非主属性 参照完整性 referential integrity 是数据库设计中一个重要的概念 在系 统不同的列表中 当数据库所有参照合法或非合法关联时都会涉及到参照完整性 当参照完整性存在时 任何与不存在记录的关联将变得无效化 由此可防止用户出 现各种错误 从而提供更为准确和实用的数据库 参照完整性通常通过外键 foreign key 的使用而被广泛应用 长久以来 流 行工具开源 rdbms mysql 并没有支持外键 原因是这种支持将会降低 rdbms 的速度 和性能 然而 由于很多用户对参照完整性的优点倍感兴趣 最近 mysql 的不同版 本都通过新 innodb 列表引擎支持外键 由此 在数据库组成的列表中保持参照完 15 冀东天然气居民收费系统的设计与实现 整性将变得非常简单 为了建立两个 mysql 表之间的一个外键关系 必须满足以下三种情况 1 两个表必须是 innodb 表类型 2 使用在外键关系的域必须为索引型 index 3 使用在外键关系的域必须与数据类型相似 根据上面建立数据库的注意事项 在此系统中的数据表包括管理员信息表 admin 用户信息表 user 用户购气收费信息表 fee gas 抄表 chaobiao 安装收费信息表 install 通气签订合同表 tgcontract 这些表的具体设计 如下 表 3 1 管理员信息表 admin 字段名 数据类型 长度 允许空 键属性 字段描述 id int 1 x 主键 admin name char 20 x 用户名 password char 20 x 用户密码 表 3 2 用户信息表 user 字段名 数据类型 长度 允许空 键属性 字段描述 id int 1 x 主键 userid char 20 x 用户编号 uname char 20 用户姓名 uyard char 20 小区名称 ustory char 20 楼号 unit char 20 单元号 uaddress char 20 地址 utele char 20 用户密码 表 3 3 用户购气收费信息表 fee gas 字段名 数据类型 长度 允许空 键属性 字段描述 id int 1 x 主键 userid char 20 x 外键 用户编号 fee id char 20 购气编号 fee price double 购气单价 fee amount double 购气数量 fee double 购气金额 fee date datetime 8 购气日期 16 冀东天然气居民收费系统的设计与实现 表 3 4 抄表信息表 biao 字段名 数据类型 长度 允许空 键属性 字段描述 id int 1 x 主键 userid char 20 x 外键 用户编号 biao id char 20 抄表编号 biao pre double 上次表示数 biao last double 本次表示数 biao price double 购气单价 biao amount double 用气数量 biao fee double 交费金额 biao date datetime 8 抄表日期 表 3 5 安装收费信息表 install 字段名 数据类型 长度 允许空 键属性 字段描述 id int 1 x 主键 userid char 20 x 外键 用户编号 install no char 20 收据编号 install tot double 收费金额 install times int 4 收费次数 install amount double 赠气量 install state double 安装情况 indtall date double 安装日期 install memo datetime 8 备注 表 3 6 通气签订合同表 tg 字段名 数据类型 长度 允许空 键属性 字段描述 id int 1 x 主键 userid char 20 x 外键 用户编号 tg no char 20 合同编号 tg htdate datetime 8 合同签订日期 tg state char 通气状态 tg date datetime 8 通气日期 表与表之间的关系是通过用户编号 userid 进行关联的 在数据库设计中 我们使用的是数据库连接池技术 数据库连接池中有一个 connection 对象 在用户提交请求后 不会释放掉该对象 而是将对象存放在一个 类似于栈的容器中 以便于后面的用户使用 这样可以循环利用此对象 不会浪费 资源 17 冀东天然气居民收费系统的设计与实现 3 3 本章小结 本章主要是居民天然气收费系统的设计与实现 包括系统设计模型 数据库的 设计以及系统功能的设计 一个系统的成功与否 很重要的一部分就是数据库设计 其中有一些设计规范 遵照设计规范 可以减少数据的冗余 提高数据存取速度 提高工作效率 这里还用到了一个新技术 即数据库连接池技术 这项技术可以重 复利用所创建的对象 减少了资源和空间的浪费 18 冀东天然气居民收费系统的设计与实现 第四章 系统实现 4 1 系统功能 在介绍系统功能之前 先了解一下 struts 体系结构及其工作原理 struts framework 是 mvc 模式的体现 下面分别从模型 视图 控制来看看 struts 的体系结构 architecture 下图显示了 struts framework 的体系结构 响应客户请求时 各个部分工作的原理 图 4 1 struts 框架结构图 struts 的 controller 由系统核心和业务逻辑控制器两部分组成 系统核心控 制器是 actionservlet 它继承 httpservlet 类 该控制器负责拦截 http 请求 并根据用户请求决定是否调用业务逻辑控制器 业务逻辑控制器负责处理用户请 求 它对应 action 部分需调用 model 完成处理 struts 的 model 部分使由 actionform 和 javabean 组成 其中 actionform 用 于封装用户请求参数 所有的用户请求参数由系统自动封装成 actionform 对象 该对象被 actionservlet 转发给 action action 根据 actionform 里的请求参数处 理用户请求 而 javabean 则封装底层业务逻辑 包括数据库的访问 在复杂的应 用中可能是 ebj 组件 struts 的 view 部分采用 jsp 实现 整个应用由客户端请求驱动 客户端请求 19 冀东天然气居民收费系统的设计与实现 被 actionservlet 拦截 actionservlet 根据请求决定是否需要调用业务逻辑控制 器 如果用户请求的是静态页面 则不调用业务控制器 将业务直接转发到 jsp 页 面 需要请求业务控制器处理 actionservlet 将调用业务控制器处理用户请求 并将结果交给 jsp 页面显示 为了 struts 在 web 应用中起作用 必须让 struts 的核心控制器 actionservlet 起 作用 也就是让 actionservlet 拦截用户请求 因此 在 web xml 配置文件中 需要 增加以下片段 action org apache struts action actionservlet config web inf struts config xml web inf struts config wym xml debug 3 detail 3 0 action do 在用户提交 url 请求的时候 首先到配置文件中找到与之对应的 do 然后在 配置文件中从上面找到与 do 名称相对应的控制器的名称 就可以找到核心控制 器 actionservlet 它会拦截用户的请求 并作以一定得处理 20 冀东天然气居民收费系统的设计与实现 struts config xml 集中了所有页面的导航定义 对于 web 项目 通过配置文 件可迅速把握其脉络 这不管是对于前期的开发 还是后期的维护或升级都是方便 的 掌握 struts config xml 也是掌握 struts 的关键所在 以下是 struts config xml 的代码 页面路径 4 2 系统界面 4 2 1 jsp 技术 系统中的页面都是使用 jsp java server page java 服务器端页面 技术 jsp 技术可以将常规的 静态的 html 与动态生成的内容混合起来 jsp 将动态的语言 嵌套在静态页面 html 中 生成动态页面的代码放在之中 动态页 面代码在浏览器中不能直接执行 而是在服务器端通过解析器 解析成 servlet 然 后由 java 编译器编译成 class 文件 生成 jsp 文档通过网络传输到客户端 jsp 与 当前流行的 asp active server page 相比具有很多优势 jsp 可以移植到多种操 21 冀东天然气居民收费系统的设计与实现 作系统和 web 服务器 不必局限 windows 操作系统和 iis 信息服务器 jsp 处 理的基本问题是表示 用来解决创建和维护 html 来表示请求结果 一个 jsp 页面有元素和模板数据组成 元素必须由 jsp 容器处理 模板数据则 不需要 元素类型有三种 即 指令元素 脚本元素和动作元素 其中指令元素主 要用于转换阶段提供整个 jsp 页面的相关信息 指令不会产生任何的输出到当前的 输出流中 脚本元素用于声明在其他脚本元素中可以使用的变量和方法 脚本段是 一段 java 代码 用于描述在请求对的响应中要执行的动作 表达式脚本元素是 java 语言中完整的表达式 在响应请求时将计算出的结果转换成字符串 插入到输出流 中 动作请求为请求处理阶段提供信息 当然 仅用 jsp 技术 不适用于结构不固定的应用 不适用于大部分由动态数 据组成的应用 因此便提到另一种技术 servlet servlet servlet 是运行在 web 服务器或应用服务器上的 java 程序 在 mvc 设 计模式中处于控制器位置 它是一个中间层 负责连接来自 web 浏览器或其它 http 客户程序的请求和 http 服务器上的数据库或应用程序 servlet 的工作有 1 读取客户发送的显式数据 如 applet 或定制的 http 客户程序 2 读取由浏览器发送的隐式请求数据 客户端传送到 web 服务器的数据有两 种 分别是用户在表单中输入的显示数据 以及后台的 http 信息 包括 cookie 浏览器所能识别的媒体类型和压缩模式 3 生成结果 在这个过程中可能需要访问数据库 执行 rmi 或 ejb 调用 调 用 web 服务器或直接得出对应的响应 web 服务器不能直接与数据库进行对话 这是处于安全上的考虑 因此 我们需要 web 中间层从 http 流中提取输入数据 与应用程序会话 并将结果嵌入到文档中 4 向客户发送显示数据 文档 发送的文档包括 http xml 二进制 gif 格式或媒体格式 甚至可以发送压缩文件 servlet 和 jsp 的重要任务就是将结果 包装到 html 中 5 发送隐式的 http 响应数据 web 中间层 servlet 或 jsp 发送到客户端有 两种数据 文档和 http 信息 http 响应数据的发送过程设计告知浏览器或其他 客户程序所返回文档的类型 设置 cookie 和缓存参数 以及其他类型的任务 servlet 的基本结构 servlet 扩展 httpservlet 并依据客户端用户表单提交的方 22 冀东天然气居民收费系统的设计与实现 式不同 get 或 post 覆盖 doget 或 dopost 方法 如需要 servlet 对 doget 与 dopost 采取同样的行动 可以在 doget 中调用 dopost 方法 这两个方法都接收了 httpservletrequest 和 httpservletresponse 类型的两个参数 通过 httpservletrequest 可以得到客户端所有请求的数据 例如表单查询的数据 httpservletresponse 可以 指定输出信息 javabean 在 mvc 中处于业务逻辑层 一种关系映射的 java 类 封装了表单 或数据库关系中的数据 并提供 setxxx 和 getxxx 方法用于存储和设置这 些数据 4 2 2 管理员登录 图 4 2 管理员登录 login jsp 在整个项目中有多个管理员 管理员输入用户名和口令之后 系统自动检索数 据库中数据表的信息 查找到居民收费系统的管理员 并分配给他该系统的管理权 限 这里还要进行消息验证 判断是否是拥有权限的用户 为了保证管理员登录的安全性 在管理员输入用户名及密码后 点击登录 系 统会将管理员输入的信息封装在一个form表单中 根据jsp页面中的action路径即 action loginaction do 到配置文件web xml中找到以 do 扩展名结尾的url 请求 在配置文件中找到与 do名称相同的config 这里边它们相同的名称默认为 action config是struts的配置文件 可以自定 义 这里命名了自己的配置文件struts config wym xml 在此配置文件中 定义了 绑定的form表单 里定义了业务逻辑控制器 action 管理员提交的loginform表单传给loginaction类 其代码如下 管理员登录系统的 loginform java public class loginform extends validatorform 23 冀东天然气居民收费系统的设计与实现 private string username private string userpwd public actionerrors validate actionmapping mapping httpservletrequest request todo au

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论