




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
共 页 第 I 页 自行车出租系统毕业设计自行车出租系统毕业设计 目录目录 1 绪论 1 1 1 开发背景 1 1 2 课题意义 1 1 3 系统开发环境的选择 2 1 3 1 编程语言的选择 2 1 3 2 开发环境的选择 2 1 4 系统数据库环境的选择 3 2 系统分析 4 2 1 可行性研究 4 2 1 1 经济可行性 4 2 1 2 营运可行性 5 2 1 3 技术可行性 5 2 2 系统功能需求分析 5 2 2 1 前台模块功能需求分析 5 2 2 2 后台管理模块功能需求分析 6 2 3 数据流程分析 6 3 系统设计 8 3 1 总体结构设计 8 3 2 模块功能设计 8 3 2 1 销售模块 8 3 2 2 系统管理模块 11 3 3 数据库设计 12 3 3 1 数据库概念结构设计 12 3 3 2 数据库逻辑结构设计 13 3 3 3 数据表详细设计 14 3 4 预订过程设计 16 4 系统实现 18 4 1 系统主要技术 18 4 2 实体类设计 18 4 3 前台首页设计 19 4 4 前台用户登录模块设计 19 4 4 1 编写用户登录模块的实体类 20 4 4 2 配置相应的 xml 文件 21 4 4 3 编写用户登录的 Dao 类 21 4 4 4 用户登录模块具体实现 21 4 5 前台自行车浏览模块设计 22 4 5 1 编写自行车和服务站的实体类 22 共 页 第 II 页 4 5 2 配置相应的 xml 文件 24 4 5 3 编写自行车浏览的 Dao 类 25 4 5 4 自行车浏览模块的具体实现 26 4 6 前台购物车模块设计 27 4 6 1 添加购物车的实现过程 28 4 6 2 查看购物车的实现过程 29 4 6 3 修改购物数量的实现过程 29 4 6 4 删除预订的自行车的实现过程 30 4 6 5 生成订单的实现过程 30 4 7 我的定单模块设计 31 4 7 1 查看我的定单的实现过程 31 4 7 2 查看订单明细的实现过程 32 4 8 后台首页设计 32 4 9 后台所有定单信息查询模块设计 33 4 9 1 未接受定单页面 33 4 9 2 已接收定单页面 34 5 系统测试 35 5 1 用户登录模块测试 35 5 2 管理员模块测试 36 5 2 分页测试 37 5 3 结账测试 37 总结 38 致谢 39 参考文献 40 共 40 页 第 1 页 1 绪论绪论 随着 Internet 的迅速崛起 互联网已日益成为收集提供信息的最佳渠道并逐步 进入传统的流通领域 于是电子商务开始流行起来 电子商务的一个最基本体现就 是网上预订系统 越来越多的商家在网上建起在线酒店之类的网站 消费者可以通 过网络预订到适合自己的商品 当今世界正在逐步向信息化时代过渡 利用好高速发展的信息才能够使我们在 激烈的竞争中获胜 然而采用传统的商品预定方式必须要顾客与管理者进行直接联 系才能达到预定的目的 同时管理员只能通过手工记录的方式来记录商品信息 客 户信息 定单信息 存在着不可忽视的人力物力消耗大的弊端 因此一个实用 高 效 稳定的可实现网上预订的网上预定系统正是商家利用信息提高效率 服务质量 的最佳选择 本文旨在讨论如何建设网上自行车租赁系统 1 1 开发背景开发背景 经调查分析 出租自行车之行业 是符合时代发展需要的 主要概括出一下几点 1 环保的要求已越来越高 私家车的普及 汽车尾气的排放 造成大大气污染 包括严重的鸣笛 造成的 噪声污染等 已让人们开始恐慌 警觉到环保的重要性 所以 出租自行车行业将 得到重大发展 2 节约意识的提高 各种能源的价格 尤其是石油的价格 增长的速度让人望而却步 因此 出租 自行车 不愧是很好的选择 3 健康的要求 众所周知 骑自行车 对健身有很大的好处 4 消费多元化的要求 骑自行车与朋友 情侣一路游美地 在各风景点畅游 不但浪漫 而且意犹未 尽 意兴盎然 但是传统的手工记录预订信息的方式 会消耗大量的人力物力 使得管理变得 十分复杂 容易出现人为因素的失误 1 2 课题意义课题意义 当今世界 以信息技术为主要标志的科技进步日新月异 高科技成果向现实生 产力的转化越来越快 纵观全球经济发展 信息技术和信息产业已经成为经济增长 的主要推动力之一 正在改变着传统的生产和经营方式以至生活方式 发达国家经 过产业结构的升级和经济结构的转型已进入信息经济阶段 信息资源已经成为国民 经济和社会发展的战略资源 信息化水平已成为现代水平和综合国力的重要标志 随着知识经济的到来 人类已经逐步进入信息化社会 信息增长的速度越来越 共 40 页 第 2 页 快 人们希望利用先进的管理理论手段来得到并处理越来越多的信息 以提高工作 效率和管理水平 由于信息资源对人们生活的重要性 不断提高信息的收集 传输 加以利用等活动 日益成为人们社会生活的重要组成部分 本系统旨在弥补传统预订方式消耗大量人力物力的弊端 参考市场上的部分网 上预订网站 开发出适合于大部分中小型企业以及个体用户的网上自行车预订系统 系统的主要目的是通过网站来推广企业的产品和服务 并使消费者随时随地就能够 浏览企业的产品 为消费者提供在线服务 从长期的战略目标来看 网站不仅仅是 产品和服务的推广 而且通过互联网 企业内部网 企业外部网 将商家与消费者 厂商与合作伙伴连接起来 消除了时间与空间上的障碍 从而降低了人力物力的消 耗 为企业带来了更有意义更有经济效益的前景 本系统主要分为前台和后台两大模块 前台主要包括用户注册 用户管理 自 行车浏览 我的购物车 我的定单模块 后台主要包括服务站信息管理 自行车信 息管理 定单信息管理等功能 1 3 系统开发环境的选择系统开发环境的选择 系统开发的平台和选择语言的优劣及相互协调的程度 将直接影响到开发的效 率和系统的质量 1 3 1 编程语言编程语言的选择的选择 本系统采用 JSP 语言作为开发语言 目前比较流行的的动态网站的设计技术有 CGI ASP PHP NET 和 JSP 等 JSP 是 Sun 公司推出的一种动态网页技术标准 JSP 技术有点类似 ASP 技术 它 是在传统的网页 HTML 文件中插入 JAVA 程序段和 JSP 标记 从而形成 JSP 文件 它 最大的特点是将 Web 程序设计的逻辑处理和内容与外观设计隔开 通过使用 JSP 标 记和小脚本来生成页面上的动态内容 在服务器端 JSP 引擎解释 JSP 标记和小脚 本 生成所请求的内容 本系统之所以采用 JSP 开发 是由于 JSP 技术上的优势 第一 一次编写 到处运行 在这一点上 JSP 比 PHP 更出色 第二 系统的多平台支持 而 ASP PHP 有这方面的局限性 第三 强大的可伸缩性 第四 多样化和功能强大的 开发工具 1 3 2 开发环境开发环境的选择的选择 Eclipse 是一个开放源代码的 基于 Java 的可扩展开发平台 就其本身 而言 它只是一个框架和一组服务 用于通过插件组件构建开发环境 幸运的是 Eclipse 附带了一个标准的插件集 包括 Java 开发工具 Java Development Tools JDT Eclipse 的本身只是一个框架平台 但是众多插件的支持使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性 Tomcat 是目前比较流行的 Web 应用服务器 它运行时占用的系统资源小 扩展性好 在中小型系统和并发访问用户不会很多的场合下被普遍使用 是开发 共 40 页 第 3 页 和调试 JSP 程序的首选 由于 JSP Eclipse 和 Tomcat 的这些优点 所以本系统采用了以上编程语言和 开发环境 1 4 系统数据库环境系统数据库环境的选择的选择 数据库管理系统 DBMS 具有存储 检索和修改数据的功能 现在比较流行 的数据库系统包括 Access Microsoft SQL Server 2000 MySQL Oracle 等 本 系统采用的是 MySQL 数据库系统 MySQL 是开源的小型数据库系统 它的编程接 口非常丰富 可以很容易地用组件访问数据库 本系统就使用了 Hibernate 访问数 据库 MySQL 是作者大学中接触比较多而且较为熟悉的的关系型数据库 另外虽然 Oracle 解决了系统运行过程中的跨平台问题 但是它的企业管理器使用过程较为复 杂而且适用于大型项目 对于中小企业来说价格过于昂贵 而 MySQL 虽然功能和 安全性不够 但 MySQL 体积小 速度快 总体拥有成本低 考虑本系统中用到的 数据表以及数据表之间关系的复杂程度 MySQL 提供的功能足以满足系统需求 由于以上原因 本系统采用 MySQL 开发 2 系统分析系统分析 在本网上自行车预订系统中 在前台销售模块 用户可以自由浏览各个服务站 中的自行车 但想购买必须要先进行注册成为会员 登陆后就可以预订了 会员在 该网站中可以按所属服务站的分别浏览自行车信息 将自己需要的自行车加入购物 共 40 页 第 4 页 车后可以修改预订的数量 然后就可以去填写订单 完成预订流程 在后台管理模 块 系统管理员分为超级管理员和普通管理员 普通管理员可以自行车信息进行管 理 可以添加 修改 删除自行车 还可以对定单信息进行管理 当确定客户交了 预订金之后 接收定单 当客户归还自行车的时候 确认归还 超级管理员除了 可以进行以上操作 还可以对服务站信息进行添加 删除 修改 本章节从系统的可行性 需求分析的角度分析了系统是否值得开发 是否能开 发出来 各模块需要完成的功能 2 1 可行性可行性研究研究 利用周末的时间 约上三五个好友 租辆自行车 到户外游玩 既避开了大城 市中拥堵的车辆 又在便捷的出游中锻炼了身体 现在 不管您是在文化底蕴丰厚 的皇城北京 还是漫步在现代时尚的上海或者走在是有着悠久历史文化的西安的接 头 都可以租到轻便的自行车无拘无束地户外休闲游 每次出差到一个新的地方 总是想去一些值得观赏的地方 打的太贵 挤公交 车太累 又怕出门走错了地方耽误时间 有时近在距离居住地 2 公里的地方也不愿 去 随着全民健身运动的到来 今年在全国各大都市自行车租赁行业悄然而生 随着计算机网络的快速发展 现在越来越多的公司开始利用网络发展业务 其 中很常见的就是网上预订 本文的网上自行车预订也是很多自行车租赁公司正在发 展的业务 企业进行网上商务的效益是显而易见的 但是 我们也应该考虑到时间和资源 方面的限制 因此 公司在准备发展网络业务之前 应该根据本公司的能够提供的 资源进行可行性分析 以降低开发的风险 避免不必要的人力 物力和财力的浪费 可行性研究主要包括经济可行性 营运可行性 技术可行性 2 1 1 经济可行性经济可行性 经济可行性就是对开发成本进行分析 估计开发成本是否会超过项目的预期利 润 企业开发网上自行车预订有很多好处 可以扩大企业的影响 提高企业的形象 方便利用网络对企业进行宣传 虽然系统开发初期投资较大 但是系统开发成功正 常运转时 不但可以实现投资少回收快 还可以帮助公司更好地预测市场 及时调 整经营策略 在激烈的市场竞争中掌握主动 另外服务时间和地点不受限制 可以 大大节约人力及物力的消耗 因此 从长远利益考虑 本系统若能开发成功 它所 带来的效益将远高于系统投入 2 1 2 营运可行性营运可行性 首先从当前社会商业市场运作情况来看 公司在运营的过程中 经常会受到以 下一些条件的限制 1 商品的宣传受到限制 顾客只能通过上门咨询 电话沟通等方式进行各种信息的获取 受到一定的时 共 40 页 第 5 页 间与物理空间的局限并且成本较高 2 复杂的商品周转渠道 从看商品 谈价格到支付租金 押金等一系列的产品周转渠道过于复杂 企业 与客户之间缺乏一个全面的沟通与快捷运营的平台系统 企业需要实时了解商品的 销售情况 保证热销商品的要货满足率 基于企业在传统销售模式中遇到的以上困难 作者开发了该网上自行车预订系 统 商家在使用该系统后 只需将需要推广的产品信息录入数据库 即可达到向顾 客宣传的目的 节省了大量的人力资源 同时可以根据在线预订的多少 实时查看 库存信息 实现商品周转渠道的最简洁化 2 1 3 技术可行性技术可行性 本系统使用 JSP 编程语言 使用 Hibernate 框架 后台数据库使用 MySQL 数 据库 Hibernate 是一个开放源代码的对象关系映射框架 它对 JDBC 进行非常轻 量级的对象封装 使得 Java 程序员可以随心所欲的使用对象编程思维来操作数据库 Hibernate 可以应用在任何使用 JDBC 的场合 既可以在 Java 的客户端程序使用 也可以在 Servlet Jsp 的 Web 应用中使用 最具革命意义的是 Hibernate 可以在 应用 EJB 的 J2E 架构中取代 CMP 完成数据持久化的重任 2 2 系统功能需求分析系统功能需求分析 由本章开头的网上租赁逻辑过程分析 结合市场上的租赁网站 本系统的功能 主要分为前台预订和后台管理两大模块 其中前台预订模块的功能由顾客使用 可 以进行各类自行车信息的浏览 如果是注册用户那么可以预订自行车到购物车并实 现结算 如果没有检索到相应的自行车也可以使用下达订单的功能 系统管理功能 由发布商品信息的商家使用 可以实现注册用户管理 自行车信息管理 订单管理 服务站信息管理等内容 同时可以处理用户下达的新订单 2 2 1 前台模块功能需求分析前台模块功能需求分析 前台模块主要是买家使用 买家可以在该模块浏览自行车信息并预订合适的自 行车 前台模块的功能需求如下 1 用户管理 用户注册 未注册的用户只可以浏览服装的详细信息 只有已注册用户登录后 才可以预订自行车 填写订单 用户登录 修改密码 注销登录 已登录的用户可 以安全退出系统 2 自行车展示 客户可以通过选择服务站 浏览该服务站所拥有的自行车的详细信息 包括自 行车 ID 自行车名称 租金 押金 库存量和图片 3 购物车 已登录的用户选中的自行车会添加至购物车 可以通过查看购物车修改预订数 量 删除预订的商品 确定购买后支付租金并填写定单信息后就生成定单 4 订单查询 共 40 页 第 6 页 会员提交订单后可以查询自己的订单信息 还可以查询订单详细信息 2 2 2 后台管理模块功能需求分析后台管理模块功能需求分析 后台管理模块主要是商家使用 包括商品管理 订单管理 和管理员管理等 后台管理模块的功能需求如下 1 商品管理 管理所有服装信息 普通管理员可以添加 修改自行车的信息 超级管理员还 可添加 修改服务站的信息 2 订单管理 对于销售模块中注册会员下达的订单审核 然后执行 一条订单信息只能对应 一个会员 却能对应多个商品 3 管理员信息管理 可实现对系统管理员的基本信息进行管理 如增加管理员 超级管理员可查询 所有管理员的信息 或删除管理员 但超级管理员无法被删除 4 管理员登录 只有通过登录才能进入系统管理主页面 进而使用系统管理模块的所有功能 5 注销退出 当管理员点击 注销 后实现安全退出 2 3 数据流程分析数据流程分析 数据流图是采用图形方式来表达系统的逻辑功能 数据在系统内部的逻辑流向 和逻辑变换过程 它描述了系统的组成部分及各部分的联系 以及信息流和数据转 换 网上自行车预订业务首先由商家将自行车 服务站信息通过后台管理模块提供 的商品管理功能录入数据库 然后买家在注册为网站会员之后即可预订所需自行车 预订完成之后付款并填写定单信息 之后即可提交订单 商家管理员每天都会处理 购买者下达的新订单 并予以确认接收 客户在预订日期当天到达所选择的服务站 服务站中管理员通过定单查询进行确认并收取押金后即可将车租给客户 客户在指 定日期内归还自行车 管理员再次查询定单进行确认并归还押金 本系统的顶层数 据流程如图 2 1 所示 共 40 页 第 7 页 商家顾客 自行车 服务站信 息 已执行订 单 未执行订 单 图 2 1 顶层数据流程图 自行车 预订 对于前台销售模块来说 主要的数据由买家输入 主要包括注册信息 登录信 息 选购商品信息的输入 输出的则是订单信息 对于后台管理模块来说 主要的 数据由商家输入 主要包括商品信息 输出的则是前台销售模块所看到的所有信息 中间层数据流程如图 2 2 所示 未注册 者 已注册 用户 登录信息 注册信息 商家会员 服务站信息 自行车信息 自行车信息 服务站信息 订单信息 图 2 2 中间层数据流程图 后台管 理 前台销售 执行订单 3 系统设计系统设计 本章节的总体目标是将上一章节需求分析阶段得到的目标系统的逻辑模型 变 换为目标系统的物理模型 具体将从系统的结构设计和数据库的设计两方面进行讲 解 简单的说就是根据上一章节中需求分析的 做什么 确定系统应该 怎么做 共 40 页 第 8 页 3 1 总体结构设计总体结构设计 系统结构和功能是系统设计的核心部分 通过系统结构图可以清楚的看出整个 系统的结构 根据上一章节的功能需求分析 本系统总体上分前台模块和后台管理 模块 前台模块功能供买家浏览并预订自行车 后台管理模块功能供商家管理使用 系统总体结构如图 3 1 所示 网上自行车租赁系统 前台模块后台管理模块 图 3 1 系统总体结构图 3 2 模块功能设计模块功能设计 本系统分前台模块和后台管理模块 每个模块又有若干个子模块构成 其中前 台模块主要包括 自行车展示 购物车 用户管理等子模块 系统管理模块主要包 括 商品管理 订单管理 管理员管理等子模块 具体的模块功能设计如下 3 2 1 销售模块销售模块 系统销售模块主要让商品购买者使用 可以进行各类商品信息的浏览和订购功 能 系统销售模块的结构如图 3 2 所示 共 40 页 第 9 页 前台模块 用户管理自行车展示自行车检索购物车 收银台订单查询 用户注册 用户登录 用户密码修改 各服务站所有自行车 按服务站检索自行车 修改购物车 查看购物车 添加购物车 结账 填写订单信息 订单明细查询 用户订单查询 图 3 2 前台销售模块功能结构图 前台销售模块具体功能设计如下 1 用户管理功能 实现用户注册 登录 修改密码 注销等功能 对于注册功能 需要用户输入 的信息取决于数据库中会员信息数据表中的字段 并通过各类型的验证控件实现校 验 登录和索回密码功能所需的数据也是从会员信息数据表中得到 对于注销登录 功能 保证在注册会员注销后清空其登录时候保持的信息 如会话信息 购物车信 息等 2 自行车展示功能 用户可先选择服务站 页面即显示出该服务站所拥有的自行车的所有信息 用 户可找到自己所需的自行车加入购物车 在用户未登录之前 不能进行预订 如点 击预订 系统会提示用户登录 新闻显示 系统滚动新闻 链接显示 友情链接网站 按小类别检索服装 服装搜索 按关键字搜索服装 销售排行 特价服装 共 40 页 第 10 页 3 购物车功能 实现添加 查看 修改 删除购物车 在顾客提交购物车 提交订单 之前 所 有已选定的自行车信息会存放在购物车中 当提交购物车之后 该数据集中的信息 就被写入数据库中定单明细表中 在用户未登陆之前 不能够使用购物车提交功能 4 定单查询功能 用户登录后可查询已提交的定单及定单明细 3 2 2 系统管理模块系统管理模块 系统管理模块的功能由发布商品的商家使用 可以进行管理员 商品 定单的 管理 管理模块的结构如图 3 3 所示 共 40 页 第 11 页 后台管理模块 自行车管理 订单管理 服务站管理管理员管理 自行车信息添加 自行车信息删除 自行车信息修改 服务站信息添加 服务站信息修改 服务站信息删除 订单查询 订单接收 订单详细查询 管理员添加 图 3 3 后台管理模块功能结构图 定单确认归还 管理员信息添加 管理员删除 系统管理模块具体功能设计如下 1 自行车管理功能 实现对自行车信息进行添加 编辑 删除等操作 2 服务站管理功能 只有超级管理员能进行此操作 对服务站信息进行添加 编辑 删除等操作 3 管理员管理功能 普通管理员只能查询和修改自己密码 超级管理员可以询问所有管理员的信息 并进行添加 删除管理员的操作 但超级管理员无法删除 4 订单管理功能 实现对订单详细信息进行查看 接收 确认归还等操作 服装明细查询 商品小类别管理 服装小类别添加 服装小类别查询 服装小类别删除 会员管理 会员详细查询 会员查询 会员删除 新闻管理 新闻添加 新闻修改 新闻删除 链接管理 链接网站添加 链接网站修改 链接网站删除 共 40 页 第 12 页 3 3 数据库设计数据库设计 系统分析结束后进入设计阶段 抽象地分析数据 理解数据之间的关系 建立 E R 模型 然后对数据库进行概念结构设计和逻辑结构设计 由于 MySQL 能够以 极高的效率完成各种数据库查询 并能方便的使用存储过程 同时 Navicat for MySQL 的图形化用户界面 使系统管理和数据库管理更加直观 简单 所以本系统 采用了 MySQL 进行数据库的存储管理与维护 3 3 1 数据库概念结构设计数据库概念结构设计 将需求分析得到的用户需求抽象为信息结构即概念结构设计 这一步是数据库 设计的关键 一般采用自底向上的方法进行数据抽象和结构设计 在本系统中涉及 到的实体如下所示 1 管理员 管理员 ID 登录密码 2 用户 用户 ID 登录密码 年龄 邮箱 3 自行车 自行车 ID 自行车名称 租金 押金 库存量 所属服务站 图 片位置 4 服务站 服务站 ID 服务站名称 服务站地址 服务站电话 5 订单 订单 ID 订货用户 用户电话 归还服务站 租期 预订日期 管 理员检查 6 订单明细信息 订单明细信息 ID 所属的订单号 对应的商品 ID 对应商 品数量 在该系统中 各个实体的关系为 一个管理员可同时管理用户 自行车 服务 站 订单等多个实体对象 并且它们之间都是一对多的关系 一个会员实体可以下达多条订单信息实体 而一条订单信息又可对应多条订单 明细信息实体 一条订单明细包括一个商品实体 一个商品大类信息拥有若干商品 小类信息实体 而一个商品小类实体信息又拥有多个商品实体 各个实体之间的关 系如图 3 4 所示 共 40 页 第 13 页 3 3 2 数据库逻辑结构设计数据库逻辑结构设计 系统数据库设计的优劣直接影响到以后网站与数据连接的速度和更新查询的复 杂度 本节介绍本系统基于关系数据库的数据库总体结构设计及数据表的设计 本系统的数据库设计是在系统功能分析后 依据系统的需求目标而做出的设计 本系统为基于 JSP 的网上自行车预订系统 所以数据表包括自行车信息表 服务站 信息表 订单信息表 订单明细表 用户信息表 管理员信息表等 表 3 1 为本系 统所涉及到的数据表 图 3 4 系统 E R 图 共 40 页 第 14 页 表 3 1 数据表列表 表名主要属性 h bike 自行车信息 自行车 ID 自行车名称 租金 押金 库存 图片 h client用户信息 用户 ID 用户名 登录密码 邮箱 h admin 管理员信息 管理员 ID 登录账号 登录密码 权限 级别 h servicer 服务站信息 服务站 ID 服务站名称 服务站地址 服务站电话 h order 订单信息 订单 ID 订单下达者 联系电话 归还时 的服务站 租期 拿车日期 定单状态 h item 订单详细信息 订单详细信息 ID 所属的订单号 对 应的自行车 ID 对应预订的数量 3 3 3 数据表详细设计数据表详细设计 本系统中共涉及以商品信息表和商品类别表为中心的 6 张数据关系表 下面列 出了本数据库中主要涉及到的数据表 自行车信息表 h bike 该表中存放所有的自行车详细信息 表 h bike 的结构 表如表 3 2 所示 表 3 2 自行车信息表 h bike 字段名字段类型可否为空描述 idbigint 50 Not Null Z 自行车 ID 主键 自动加 1 servicer IdInt 10 Not Null 所属服务站 ID 外键 nameVarchar 50 Null自行车名称 pricedouble 10 2 Null自行车租金 yajindouble 10 2 Null自行车押金 countInt 10 Null库存量 picture Varchar 100 Null自行车图片地址 用户信息表 h client 该表中存放在所有在系统中注册的会员的详细信息 表 共 40 页 第 15 页 h client 的结构表如表 3 3 所示 表 3 3 会员信息表 h client 字段名字段类型可否为空解释 idbigint 50 Not Null 用户 ID 主键 自动加 1 nameVarchar 50 Not Null用户名 passWordVarchar 50 Not Null用户登录密码 emailVarchar 50 Not Null邮箱地址 管理员信息表 h admin 该表中存放在系统管理模块中合法管理员的所有信息 表 h admin 的结构表如表 3 4 所示 表 3 4 管理员信息表 h admin 字段名字段类型可否为空解释 idbigint 50 Not Null 管理员 ID 主键 自动加 1 nameVarchar 50 Not Null管理员登录账号 passWordvarchar 50 Not Null管理员登录密码 levelvarchar 50 Not Null管理员级别 服务站信息表 h servicer 该表中存放服务站的所有信息 表 h servicer 的结 构表如表 3 5 所示 表 3 5 服务站信息表 h servicer 字段名字段类型可否为空解释 idInt 10 Not Null 服务站 ID 主键 自动加 1 nameVarchar 50 Not Null服务站名称 addressVarchar 50 Not Null服务站地址 telVarchar 50 NULL服务站电话 订单信息表 h order 该表中存放在系统中生成的所有订单信息 表 h order 的结构表如表 3 6 所示 共 40 页 第 16 页 表 3 6 订单信息表 h order 字段名字段类型可否为空解释 idbigint 50 Not Null 订单 ID 主键 自动加 1 client nameVarchar 50 Not Null用户名称 kehu telvarchar 50 Null用户电话 create datedateNot Null拿车日期 timeInt 4 Not NULL租期 servicer idInt 10 Not NULL 归还服务站 ID 外键 ordecheckvarchar 50 Not NULL定单状态 订单详细信息数据表 h item 该表中存放在系统中每个订单对应的商品及所 有者等信息 表 h item 的结构表如表 3 7 所示 表 3 7 订单详细信息表 h item 字段名字段类型可否为空解释 idbigint 50 Not Null 订单详细信息 ID 主键 自动加 1 Order idbigint 50 Not Null 所属的订单 ID 外键 bike Idbigint 50 Not Null 对应的自行车 ID 外键 countInt 10 Not Null对应预订的数量 3 4 预订过程设计预订过程设计 预订过程设计要根据模块划分以及结构化程序设计的基本原则 对每个程序模 块中的详细处理过程进行设计 后文的系统实现也主要围绕该设计进行具体实现 本系统中采用程序流程图进行设计前台预订程序流程图 如图 3 5 所示 共 40 页 第 17 页 4 系统实现系统实现 总体设计阶段完成了软件的结构设计 划分了模块 并规定了各个模块的功能 图 3 5 预订流程图图 共 40 页 第 18 页 及他们之间的联系 在此之后 按软件开发工程化的观点 应进入系统的详细设计 阶段 即系统实现 该阶段的根本目标是确定应该怎样实现所要求的系统 给出软 件模块结构中各个模块的内部过程描述 本章将分模块对系统的实现给予介绍 4 1 系统主要技术系统主要技术 本系统主要使用 Hibernate 来进行业务处理 Hibernate 的关键点包括关系映射 关系维护 延迟加载的方面 先在 Eclipse 中加入 Hibernate 和 MySQL 的 jar 包 配 置 hibernate cfg xml 文件 Hibernate cfg xml 的主要内容如下 org hibernate dialect MySQLDialect jdbc mysql localhost 3306 bicycle root 123456 com mysql jdbc Driver true 2 4 2 实体类设计实体类设计 本系统包括用户信息表 h client 管理员信息表 h admin 自行车信息表 h bike 服务站信息表 h servicer 定单信息表 h order 定单明细信息表 h item 六 个表 为各个表分别建哥实体类 包括用户类 Client 管理员类 Admin 自行车类 Bike 服务站类 Servicer 订单类 Order 订单明细类 Item Servicer 与 Bike 之间是 双边一对多的关系 Order 与 Item 之间是双边一对多的关系 Item 与 Bike 之间是单 边多对一关系 各个实体类之间的关系映射 Servicer Bike Order 共 40 页 第 19 页 Item 4 3 前台首页设计前台首页设计 首页是网站的门户 在首页应该将服务站信息 自行车分类信息展示出来 还 应该提供订单查询 购物车查询 用户注册 用户登录 修改密码展示 运行界面 如 4 1 图所示 下面介绍前台比较重要模块的实现 分别是用户登录 自行车查询和购物车模 块 4 4 前台用户登录模块设计前台用户登录模块设计 用户要通过登录模块的验证才能进入网站预订自行车并且下订单 用户在网站 首页点击登录进入登录界面进行登录 如果验证成功后用户就可以进行预订 用户 登录模块的框架如图 4 2 所示 图 4 1 首页运行界面 共 40 页 第 20 页 开始 用户登录 是否通过验 证 预订自行车 是 否 图 4 2 会员登录流程图 4 4 1 编写用户登录模块编写用户登录模块的实体类的实体类 Client 类拥有属性 用户 ID id 用户名 name 密码 password Email email public class Client private Long id private String name private String password private String email public Client super public Client String name String password String email super this name name this password password this email email public Long getId return id public void setId Long id this id id 省略省略 public Client String name String password super this name name this password password 共 40 页 第 21 页 4 4 2 配置相应的配置相应的 xml 文件文件 4 4 3 编写用户登录的编写用户登录的 Dao 类类 用户登录时检查此用户是否 存在的方法 在数据库中的 Client 表中查询用 户名和密码为给定参数 name 和 password 的用户个数 如果个数为 1 说明此 用户存在 返回 true public boolean dengluCheck String name String password Session s HbmUtil getSession try s beginTransaction boolean b false String hql select count c from Client c where c name and c password Number num Number s createQuery hql setString 0 name setString 1 password uniqueResult int count num intValue if count 1 b true return b finally s getTransaction commit s close 4 4 4 用户登录模块具体实现用户登录模块具体实现 用户在登陆时发送请求到 Servlet Servlet 从请求中得到输入的用户名和密码 再调用 ClientDao 的 dengluCheck 方法检验 如果成功 把用户名放入 Session 中再跳转到主页 如果失败 弹出警告 用户名密码不匹配 登录失败 String username request getParameter zname String password request getParameter zpassword String msg boolean chengong cd dengluCheck username password 检验登录 if chengong true 如果登录成功 session setAttribute user username request getRequestDispatcher pagination jsp forward request response else 如果登录不成功 msg 用户名密码不匹配 登录失败 request setAttribute msg msg request getRequestDispatcher customermanage jsp forward request respo nse 用户登录界面如图 4 3 所示 共 40 页 第 22 页 图 4 3 用户登录界面 如果登录不成功 会显示相应的提示信息 界面如图 4 4 所示 图 4 4 用户登录错误提示界面 4 5 前台自行车浏览模块设计前台自行车浏览模块设计 4 5 1 编写编写自行车和服务站的实体类自行车和服务站的实体类 自行车实体类 自行车类拥有属性 自行车 ID id 自行车名称 name 租金 price 押金 yajin 图片地址 pic url 所属服务站 servicer public class Bike private Long id private String name private double price private double yajin private int count private String pic url private Servicer servicer public Bike String name double price double yajin int count String picUrl super this name name this price price this yajin yajin this count count this pic url picUrl this servicer new Servicer public Bike super public Long getId 共 40 页 第 23 页 return id public void setId Long id this id id 省略省略 Override public int hashCode 覆写覆写 hashCode 方法方法 省略省略 Override public boolean equals Object obj 覆写覆写 equeals 方法方法 省略省略 服务站实体类 服务站类拥有属性 服务站 ID id 服务站名 name 服务站地址 address 服 务站电话 tel 拥有自行车 bikes public class Servicer private Integer id private String name private String address private String tel private Set bikes public Servicer String name String address String tel super this name name this address address this tel tel this bikes new HashSet public Servicer super public Integer getId return id public void setId Integer id this id id 省略省略 页面设置实体类 PageBean 中拥有属性 当前页 currentpage 总页数 totalpage 每页显示元 素个数 quantity 显示元素的种类 sort public class PageBean private int currentpage 1 private int totalpage 1 private static int quantity 2 private int sort public int getCurrentpage return currentpage public void setCurrentpage int currentpage this currentpage currentpage 共 40 页 第 24 页 省略省略 public int page int count BikeDao bd new BikeDao int page if count this quantity 0 page count this quantity else page count this quantity 1 return page 4 5 2 配置相应的配置相应的 xml 文件文件 Bike hbm xml Servicer hbm xml 4 5 3 编写编写自行车浏览的自行车浏览的 Dao 类类 BikeDao 按当前页面和所属服务站检索获得的自行车的集合的方法 参数 page 为当前页 PageBean getQuantity 为一页显示的自行车个数 当前页减一再乘以一页显示的 共 40 页 第 25 页 个数即为当前要显示的第一种自行车 利于 setFirstResult 和 setMaxResults 方法就能得到当前页所需输出的自行车的集合 public List listOfPageAndServicer int page int id Session s HbmUtil getSession try s beginTransaction List list s createQuery from Bike b where b servicer id setInteger 0 id setFirstResult page 1 PageBean getQuantity setMaxResults PageBean getQuantity list return list finally s getTransaction commit s close 获得某服务站中所有的自行车集合的方法 参数 id 为服务站 id 通过 sql 语 句找到所属服务站 id 为参数 id 的所有自行车的集合 public List listOfServicer int id Session s HbmUtil getSession try s beginTransaction List list s createQuery from Bike b where b servicer id setInteger 0 id list return list finally s getTransaction commit s close ServicerDao 通过服务站名获得服务站的方法 public Servicer findOfName String name Session s HbmUtil getSession try s beginTransaction String hql from Servicer s where s name Servicer servicer Servicer s createQuery hql setString 0 name uniqueResult return servicer finally s getTransaction commit s close 4 5 4 自行车浏览模块的具体实现自行车浏览模块的具体实现 先从请求页面获得一个 PageBean 进而通过 BikeDao 中的方法获得需要在页面 显示的 Bike 集合 PageBean pb PageBean session getAttribute buypage int id pb getSort BikeDao bd new BikeDao List list bd listOfPageAndServicer pb getCurrentpage id 将这个集合显示在页面中 自行车浏览模块运行的界面如图 4 5 所示 共 40 页 第 26 页 4 6 前台购物车模块设计前台购物车模块设计 会员登录后 在浏览到自己需要的自行车时 可以将该自行车放入购物车中 这与我们现实生活中在超市购物时使用的购物篮类似 我们购完物后会将购物篮拿 到收银台结账 这里也一样 将自行车放入购物车后 可以去收银台结账 也可以 修改自行车数量 删除某种自行车等等 框架图如图 4 6 所示 图 4 5 自行车浏览界面 共 40 页 第 27 页 用户登录 添加至购物车 查看购物车 修改自行车数量结账删除所选自行车 生成定单 图 4 6 购物车模块框架图 填写定单信息 4 6 1 添加购物车的实现过程添加购物车的实现过程 用户在浏览自行车时 如果满意的话点击 放入购物车 就可以将该自行车放 入购物车 这里定义一个 Map 类型的对象 cart 用来存储自行车信息 保存在 seesion 对象中用以在整个会话期内进行操作 String str request getParameter bid 获得预订的自行车的ID Long id Long parseLong str Bike bike bd findOfId id if bike getCount 0 request setAttribute msg 库存不够 request getRequestDispatcher bikeshow jsp forward request respon
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业节能减排的技术与政策探讨
- 工业电机故障诊断与维护策略
- 工业设计在产品创新中的价值
- 工业节能的智慧能源管理
- 工业设计与产品创新表达
- 工业设计产品外观的色彩搭配与创新性
- 工作环境对教师工作满意度的影响
- 工厂企业消防安全管理
- 工程机械设备安全防护技术
- 工厂环境与职业健康安全培训
- 2025年我国工程机械出口东南亚市场现状分析
- 济钢人文考试试题及答案
- 安装费合同协议
- 瑜伽教培理论试题及答案
- 人工智能在化学领域的应用与未来发展展望
- 慢性病管理小组的工作职责与目标
- 《SLT 105-2025水工金属结构防腐蚀技术规范》知识培训
- 《汽车构造与拆装》课程标准 (一)
- 私募股权投资风险评估模型-深度研究
- 第1-2课时listening and speaking Unit 8 The People and the Events教案-【中职专用】2024-2025学年高一英语同步课堂(高教版2023修订版·基础模块1)
- 2025年共青团入团积极分子考试测试试卷题库及答案
评论
0/150
提交评论