




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、校内实训项目报告课 题:宠物商店管理系统设计学 院: _ _ _ _学生姓名: _ _ _ _指导教师: _ _ _ _ 一、需求分析1.1项目开发背景PetStore 是SUN公司推出的一个宠物店系统,是J2EE应用和学习的一个好例子。针对不同的侧重点,具有不同的版本。该系统不同的版本是优秀程序员智慧的结晶。从功能层面来说,这个系统具有:宠物分类展示、下订单、添加到购物车、浏览产品细节等一系列网上商城所具备的基本功能。1.2 功能介绍1.2.1 整体介绍Petstore提供网上商城系统所必需的功能:用户身份认证、商品信息列表、选购商品、下订单等,围绕这些功能,系统的设计分为以下四个部分: l
2、 宠物分类展现和宠物查找模块(catalog部分),供用户浏览、查找并选购宠物。l 购物车管理(cart部分),供用户查看购物车的情况,并作出是否购买的选择。l 账户管理模块(account部分),为用户提供注册和账户登录功能。l 订单管理(order部分),供用户管理自己的账单。1.2.2 详细说明 宠物商店用户通过账户管理模块登录或者注册新用户,只有拥有经过注册的用户名和正确的密码才能更改系统内部代码、页面形式、系统数据库以及管理客户账户等;宠物分类展现部分是系统与客户的交流界面,用户在此功能界面上可以浏览整个宠物店的所有产品情况,包括:宠物生活习性、宠物产地、库存情况、售价等等。用户在此
3、处还可以点击单一宠物的链接进入更进一步的说明;购物车模块是系统与用户账户交流的平台,用户是否购买某产品将直接反映在这个界面和相关的数据库上。订单管理是账户管理的配合模块,是对客户的账户的直接管理和反应。1.3 系统开发平台l Jdk 即Java开发数据包;l Web服务器tomcat;l Mysql数据库,用于网站系统文件表格的建立、更改、维护等;l MyEclipse,用于编写、调试系统代码、生成发布。二、系统设计2.1宠物管理系统功能设计目标:(1) 实用性强:我们努力使系统符合实际操作流程的习惯,并尽量减少用户的输入,易学易用的友好的用户界面,满足各层次的用户使用的需求;(2) 先进的程
4、序结构:使用当代前卫的软件编程,能延长其生命周期,易于维护与管理;(3) 安全可靠性高:后台维护功能齐全,根据平台在各个阶段不同的使用情况,管理人员可以设置相应的操作权限,增加系统注册,分配各个栏目的管理权限,实现系统的维护,保证系统的安全、可靠;(4) 使用模块化设计的方法:使系统具有良好的可扩充性,以适应其不同阶段的发展需要,便于后来者分析、维护;(5) 操作简单,维护方便:每个子系统都具有相对独立的系统维护功能对可变化的项目可自行维护;(6) 查询功能强大:可以对宠物的基本情况、用户基本情况,宠物主人信息,用户留言等按各种方式查询,可形成各种表单,同时还可对其进行汇总,使管理人员能及时准
5、确地掌握用户和其宠物的基本情况。2.2 宠物管理系统的总体设计:本宠物商店管理系统是基于B/S架构下的多层结构应用系统。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。2.3 系统详细功能设计以及总体结构图:通过详细调查现实世界要处理的对象,充
6、分了解系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变。系统总体结构图: 宠物管理平台主人信息管理宠物信息管理论坛宠物监护人信息宠物类目管理主人填写主人登陆宠物信息管理用户注册用户修改监护人资料填写宠物资料填写文档管理系统实现的功能:l 宠物类别管理Ø 宠物类别查询Ø 宠物类别修改Ø 宠物类别删除Ø 新增宠物类别l 宠物信息管理Ø 宠物大小类别,是否有伤人危险Ø 宠物是否注册疫苗,何时,何地Ø 宠物有监管人或流浪或被社区收容Ø 宠物的其他信息以及备注
7、6; 宠物查询Ø 宠物修改Ø 宠物删除Ø 新增宠物l 宠物监管人管理Ø 宠物监管人性别年龄Ø 宠物监管人与宠物关系Ø 宠物监管人工作及工作住址Ø 宠物监管人联系方式等Ø 宠物监管人查询Ø 宠物监管人添加Ø 宠物监管人信息修改Ø 宠物监管人删除l 用户评论管理Ø 评论内容管理Ø 用户评论查询l 用户登录管理Ø 用户注册Ø 用户登录Ø 用户密码修改l 相关文档管理Ø 文档信息查看Ø 文档信息添加Ø 文档信息删除
8、l 个人信息管理Ø 管理员密码更改Ø 退出系统2.4 数据库结构设计:本系统分为4大模块,用户管理模块,宠物管理模块,文档管理模块以及留言板管理模块,其中宠物管理模块又分为宠物信息管理,宠物类别,宠物监管人信息管理。注册用户以及管理员分别对数据管理拥有自己的权限。图4-2:整体框架E-R图用户名密码管理员管理宠物管理系统管理登录注册用户修改密码宠物信息监管人信息宠物类型文档信息留言信息用户信息增加留言添加管理员增加宠物以及监管人信息注册用户查看文档系统ER图2.5系统的用例图2.5.1 总体用例分析总体用例图如图,用户管理、宠物,宠物类别及宠物监管人管理、留言板管理、文档管
9、理四个模块构成了本宠物管理系统。User是指系统用户,包括普通注册用户和管理员两种,普通注册用户只可以查看各种信息,以及添加与自己有关的信息,管理员才可以添加,查看,删除,修改各种信息。2.5.2 用户管理用例分析用户管理用例图如图,用户管理模块主要包括:用户登陆、用户注册、用户信息修改、用户删除、用户信息查询五个功能组成。2.5.3宠物,宠物类别及宠物监管人管理信息管理用例图如图,宠物,宠物类别,宠物监管人信息管理模块主要包括:宠物信息管理,宠物类别管理,宠物监管人信息管理三个功能模块组成。2.5.4留言板管理留言板管理用例图如图,留言板管理模块主要包括:留言板列表,留言板内容两个个内容组成
10、。2.5.5文档管理 文档管理用例图文档管理模块主要包括:文章列表、文章内容两个内容组成。2.6 系统出错处理设计:(1)用户输入账号跟密码错误,需要在登录框提示“信息错误,请重新填写!”。(2) 用户注册账户时用了跟别人一样的账户名,需要在注册页面提示“用户名已存在!”。(3)用户在提交注册信息时,有姓名账号密码等未填写时,需要弹出提示框:“未填写的内容不能为空!”。(4)用户在添加宠物有的时候,如果有未填写或为选择的状况,需要在该页面弹出提示框“未填写的内容不能为空!”。三、宠物管理系统的实现3.1 宠物管理系统数据库的实现Hibernate可以通过一个XML的mapping文件把一个PO
11、JO(Plain old java object)和数据库中的表对应起来,在这个XML文件(一般命名为*.hbm.xml)中,配置好Object和数据库中表的映射关系,然后把这个mapping加入到hibernate.cfg.xml中,这样Hibernate在启动时就可以加载这些mapping,并可以根据配置文件对对象实现自动的加载,并且可以对这些Object自动的维护。Session工厂的配置信息:applicationContext-bean.xml<?xml version="1.0" encoding="UTF-8"?><!-
12、- Middle tier application context definition for the image database. -><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:aop="/schema/aop"xmlns:context="http:/www.sp
13、/schema/context"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.5.xsd/schema/aop /
14、schema/aop/spring-aop-2.5.xsd/schema/context /schema/context/spring-context-2.5.xsd/schema/tx /schema/tx/spring-tx-2.5.xsd"><!- 抽象bean,是所有bean的父bean -><bean id="b
15、eanAbstract" abstract="true"><property name="sessionFactory" ref="sessionFactory"></property></bean><!- bean -><bean id="loginServices" class="com.oa.services.impl.LoginServicesImpl" parent="beanAbstract"/
16、><bean id="typeServices" class="com.oa.services.impl.TypeServicesImpl" parent="beanAbstract"/><bean id="messageServices" class="com.oa.services.impl.MessageServicesImpl" parent="beanAbstract"/><bean id="petServices&qu
17、ot; class="com.oa.services.impl.PetServicesImpl" parent="beanAbstract"/><bean id="ownerServices" class="com.oa.services.impl.OwnerServicesImpl" parent="beanAbstract"/><bean id="textServices" class="com.oa.services.impl.Text
18、ServicesImpl" parent="beanAbstract"/><bean id="adminServices" class="com.oa.services.impl.AdminServicesImpl" parent="beanAbstract"/></beans>以上代码是applicationContext-bean.xml文件中Session工厂的配置信息宠物信息数据库表:如表所示,这是宠物信息的表,id是系统自动生成,其余的分别为宠物姓名,宠物类型,简介
19、,添加该宠物的用户id,图片,年龄是否疫苗,疫苗时间,疫苗地点,是否领养,是否伤人等宠物信息。接下来会对它如何连接到工程以及如何实现该功能做详细介绍。其中图片在petaction中默认由本地,上传到服务器上的upload文件夹中,以便游客浏览以及管理员管理,id为系统自动+1生成,userid与user列表中的userid一致,typename与t_type列表中的typename一致,需要t_type预添加。3.3 宠物管理系统功能说明根据对宠物管理系统业务流程的分析,用户登录后要能自己添加自己的宠物信息,包括宠物的姓名,年龄,宠物的id,上传图片,是否疫苗,疫苗事件,疫苗地点,是否领养以及
20、是否伤人等信息。用户登录后可以浏览别的用户的宠物信息,而管理员可以对用户前台添加的信息进行修改与删除。3.4主要的宠物信息管理的实现3.4.1 DAO层的实现数据访问层,又称DAO层,在该层主要完成对象-关系映射的建立,通过这个映射,再通过访问业务对象即可实现对数据库的访问,使得开发中不必再用SQL语句编写复杂的数据库访问程序,这样就简化了对数据库的访问,提高了开发效率。同时通过对象-关系映射的配置,可以建立业务对象之间的复杂关系,如一对多、多对一、一对一、多对多等关系。这样就不再需要在数据库中建立表之间的复杂联系,使得业务对象之间的关系和数据库相分离,简化了数据库的建立和维护。在这一层中主要
21、使用Hibernate框架来实现。Tpet以及Tpet.hbm.xml为hibernate自动生成文件,用于连接数据库。3.4.2 Service层的实现Service为业务逻辑层,主要业务逻辑包括这些类分别实现了相应的接口,这些类在工作的过程中还需要依赖相应的DAO对象和JavaBean对象。实际操作时,在Action中通过Service对DAO接口进行调用,使整个系统有良好的层次。比如这边Petservices调用TPet,而PetserviceImpl继承Petservices,进行查询、添加、修改和删除操作。Petservices代码:import com.oa.models.TPet
22、;import com.oa.utils.PageInfo;public interface PetServices /查询public PageInfo queryPet(int currentpage, int pageunit,HttpServletRequest request, String url, String cond);/添加public Boolean addPet(TPet pet);/修改public Boolean updatePet(TPet pet);/ID查询public TPet getPet(Integer id);/删除public TPet delPet
23、(Integer id);PetserviceImpl主要代码:public class PetServicesImpl extends AbstractServices implements PetServices /查询public PageInfo queryPet(int currentpage, int pageunit,HttpServletRequest request, String url, String cond) int rowCount = this.getPetsCount(cond);List<TPet> list = this.getPets(curr
24、entpage,pageunit, cond);PageInfo PageInfo = new PageInfo(currentpage, pageunit, rowCount, url,list);return PageInfo;/获得public List<TPet> getPets(int currentpage, int pageunit,String cond) try String hql = " from TPet a where 1=1 " + cond;return this.query(hql, currentpage, pageunit);
25、 catch (Exception e) e.printStackTrace();return null;/添加public Boolean addPet(TPet pet) save(pet);return true;以上为查询以及添加的代码,其余删除修改略。3.4.3 Action层的实现Action用于处理视图层与业务层之间的衔接,当页面产生一个动作请求时候,通过Struts配置文件找到对应的Action中的接口,经过Action处理后返回结果并从Struts的配置文件中找到对应的跳转页面。查询代码:public String queryPet() throws Exceptionif
26、(getSessionAttribute("querypageunit") = null) setSessionAttribute("querypageunit",this.pageunit);StringBuffer cond = new StringBuffer();if(null!=searchname&&""!=searchname.trim()cond.append(" and a.petname like '%"+searchname.trim()+"%' &q
27、uot;);int curpage = Integer.parseInt(this.getCurrentpage(ServletActionContext.getRequest();int pageunit = Integer.parseInt(this.getPageunit(ServletActionContext.getRequest(), "querypageunit");String url = "pet_queryPet?a=a"PageInfo pageInfo = this.petServices.queryPet(curpage,pag
28、eunit, ServletActionContext.getRequest(), url, cond.toString();setRequestAttribute("pageinfo", pageInfo);setRequestAttribute("searchname", this.searchname);return "queryPet"预添加以及添加代码:public String preaddPet() throws ExceptionList<TType> list = typeServices.queryTy
29、pe();setRequestAttribute("list",list);return "preaddPet"public String addPet() throws ExceptionTUser user = (TUser) getSessionAttribute("user");TPet pet = new TPet();pet.setAge(age);pet.setIsbiter(isbiter);pet.setIsuser(isuser);pet.setPetname(petname);pet.setRemark(rema
30、rk);pet.setTypename(typename);pet.setUserid(user.getUsername();pet.setVacadrr(vacadrr);pet.setVaccin(vaccin);pet.setVaccin(vaccin);pet.setVacdate(vacdate);/ 将图片上传到工程下的upload文件夹中String targetDirectory = ServletActionContext.getRequest().getRealPath("/upload");String targetFileName = generat
31、eFileName(pictureFileName);File target = new File(targetDirectory, targetFileName);FileUtils.copyFile(picture, target);pet.setPicture(targetFileName);petServices.addPet(pet);return "addPet"预添加将后台管理员添加的宠物类型添加到宠物信息,添加功能中有图片上传。查看代码:public String viewPet() throws ExceptionTPet pet = petService
32、s.getPet(id);setRequestAttribute("pet",pet);return "viewPet"其余修改删除代码等省略。struts中宠物管理功能的实现:<action name="pet_*" class="petAction" method="1"> <result name="queryPet">/files/pet/list.jsp</result> <result name="addPet&
33、quot; type="redirectAction">pet_queryPet</result> <result name="delPet" type="redirectAction">pet_queryPet</result> <result name="updatePet" type="redirectAction">pet_queryPet</result> <result name="preaddPet&
34、quot;>/files/pet/add.jsp</result> <result name="preupdatePet">/files/pet/update.jsp</result> <result name="viewPet">/files/pet/view.jsp</result> </action>3.4.4 静态Jps页面的实现表现层其余静态页面运用css模块统一风格,其中pet功能页面代码均在files/pet/文件夹中,添加宠物信息为add.jsp,查看宠物信息为view.jsp,查看宠物列表为list.jsp,修改宠物信息为update.jsp,由struts控制跳转,代码略。结合Struts 的表现层标签, JSP 可完成全部的表现层功能一一数据收集、数据表示和客户端数据校验四、实现效果主界面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购书阅读活动方案
- 函数考试题目及答案
- 锅炉工作考试题及答案
- 广东氩弧焊考试题及答案
- 农业养殖场建设合作协议
- 企业信息化电子网络开发协议
- 儿科科室考试题及答案
- 电子档考试题及答案
- 农业产业链合作与供应保障协议
- 标准化客户服务流程及服务质量监测工具
- 环保考核试卷18285(含答案)
- 饭店服务礼仪(第3版)中职PPT完整全套教学课件
- 大型公共机构托管型合同能源管理项目实施方案
- 歌曲try的歌词8篇
- 完整word版《大中国》歌词-
- 三年级走美杯试题汇总
- 生产件批准程序PPAP学员版
- 2022年03月北京肿瘤医院公开招聘笔试参考题库含答案解析
- NB/T 10728-2021煤矿膏体充填留巷开采技术规范
- 电阻应变式传感器及其应用传感器原理及其应用课件
- 项目代建大纲
评论
0/150
提交评论