JavaWeb宠物店课程设计报告文档格式.docx
- 文档编号:21466591
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:19
- 大小:249.61KB
JavaWeb宠物店课程设计报告文档格式.docx
《JavaWeb宠物店课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《JavaWeb宠物店课程设计报告文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
二、系统设计
2.1宠物管理系统功能设计目标:
(1)实用性强:
我们努力使系统符合实际操作流程的习惯,并尽量减少用户的输
入,易学易用的友好的用户界面,满足各层次的用户使用的需求;
(2)先进的程序结构:
使用当代前卫的软件编程,能延长其生命周期,易于维护与管理;
(3)安全可靠性高:
后台维护功能齐全,根据平台在各个阶段不同的使用情况,管
理人员可以设置相应的操作权限,增加系统注册,分配各个栏目的管理权限,实现系统的维护,保证系统的安全、可靠;
(4)使用模块化设计的方法:
使系统具有良好的可扩充性,以适应其不同阶段的发
展需要,便于后来者分析、维护;
(5)操作简单,维护方便:
每个子系统都具有相对独立的系统维护功能对可变化的项目可自行维护;
(6)查询功能强大:
可以对宠物的基本情况、用户基本情况,宠物主人信息,用户留言等按各种方式查询,可形成各种表单,同时还可对其进行汇总,使管理人员能及时准确地掌握用户和其宠物的基本情况。
2.2宠物管理系统的总体设计
本宠物商店管理系统是基于B/S架构下的多层结构应用系统。
B/S
(Browser/Server)结构即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端
(Server)实现,形成所谓三层3-tier结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。
2.3系统详细功能设计以及总体结构图:
通过详细调查现实世界要处理的对象,充分了解系统的工作概况,明确用户的各种
需求,然后在此基础上确定新系统的功能。
新系统必须充分考虑今后可能的扩充和改
系统总体结构图:
系统实现的功能:
宠物类别管理
宠物类别查询
宠物类别修改
宠物类别删除
新增宠物类别
宠物信息管理
宠物大小类别,是否有伤人危险
宠物是否注册疫苗,何时,何地宠物有监管人或流浪或被社区收容宠物的其他信息以及备注
宠物查询
宠物修改
宠物删除
新增宠物
宠物监管人管理
宠物监管人性别年龄
宠物监管人与宠物关系
宠物监管人工作及工作住址
宠物监管人联系方式等
宠物监管人查询
宠物监管人添加
宠物监管人信息修改
宠物监管人删除
用户评论管理
评论内容管理
用户评论查询
用户登录管理
用户注册
用户登录
用户密码修改
相关文档管理
文档信息查看
文档信息添加
文档信息删除
个人信息管理
管理员密码更改
退出系统
2.4数据库结构设计:
本系统分为4大模块,用户管理模块,宠物管理模块,文档管理模块以及留言板管理模块,其中宠物管理模块又分为宠物信息管理,宠物类别,宠物监管人信息管理。
注册用户以及管理员分别对数据管理拥有自己的权限。
图4-2:
整体框架E-R图
用户名
登录注册用户
增加留言
修改密码
宠物管理系统
查看文档
宠物信息
监管人信息
宠物类型
文档信息
留言信息
用户信息
添加管理员
增加宠物以及监管人信
管理
管理员
八\
广注册用户J
k
J
,理/
——
系统ER图
2.5系统的用例图
2.5.1总体用例分析
user
总体用例图
如图,用户管理、宠物,宠物类别及宠物监管人管理、留言板管理、文档管理四个模块构成了本宠物管理系统。
User是指系统用户,包括普通注册用户和管理员两种,普通注册用户只可以查看各种信息,以及添加与自己有关的信息,管理员才可以添加,查看,删除,修改各种信息。
2.5.2用户管理用例分析
用户管理用例图
如图,用户管理模块主要包括:
用户登陆、用户注册、用户信息修改、用户删除、用户信息查询五个功能组成
2.5.3宠物,宠物类别及宠物监管人管理
信息管理用例图
宠物
如图,宠物,宠物类别,宠物监管人信息管理模块主要包括:
宠物信息管理,类别管理,宠物监管人信息管理三个功能模块组成。
2.5.4留言板管理
留言板管理用例图
如图,留言板管理模块主要包括:
留言板列表,留言板内容两个个内容组成。
2.5.5文档管理
文档管理用例图
文档管理模块主要包括:
文章列表、文章内容两个内容组成。
2.6系统出错处理设计:
(1)用户输入账号跟密码错误,需要在登录框提示信息错误,请重新填写!
”。
(2)用户注册账户时用了跟别人一样的账户名,需要在注册页面提示用户名已存在!
(3)用户在提交注册信息时,有姓名账号密码等未填写时,需要弹出提示框:
朱填写的内容不能为空!
(4)用户在添加宠物有的时候,如果有未填写或为选择的状况,需要在该页面弹出提示框未填写的内容不能为空!
三、宠物管理系统的实现
3.1宠物管理系统数据库的实现
Hibernate可以通过一个XML的mapping文件把一个POJO(Plainoldjava
object)和数据库中的表对应起来,在这个XML文件(一般命名为*hbm.xml)中,配
置好Object和数据库中表的映射关系,然后把这个mapping加入到hibernate.cfg.xml
中,这样Hibernate在启动时就可以加载这些mapping,并可以根据配置文件对对象实现自动的加载,并且可以对这些Object自动的维护
Session工厂的配置信息:
applicationContext-bean.xml
v?
xmlversion="
1.0"
encoding="
UTF-8"
?
>
<
!
--
-Middletierapplicationcontextdefinitionfortheimagedatabase.
-->
beansxmlns="
http:
//www.springframework.org/schema/beans"
xmlns:
xsi="
//www.w3.org/2001/XMLSchema-instanee"
aop="
//www.springframework.org/schema/aop"
context="
//www.springframework.org/schema/context"
tx="
//www.springframework.org/schema/tx"
xsi:
schemaLocation="
//www.springframework.org/schema/beans
//www.springframework.org/schema/beans/spring-beans-2.5.xsd
//www.springframework.org/schema/aop
//www.springframework.org/schema/aop/spring-aop-2.5.xsd
//www.springframework.org/schema/context
//www.springframework.org/schema/context/spring-context-2.5.xsd
//www.springframework.org/schema/tx
//www.springframework.org/schema/tx/spring-tx-2.5.xsd"
--抽象bean,是所有bean的父bean-->
beanid="
beanAbstract"
abstract="
true"
vpropertyname="
sessionFactory"
ref="
x/property>
v/bean>
--bean-->
loginServices"
parent="
/>
typeServices"
class="
com.oa.services.impl.LoginServicesImpI"
com.oa.services.impl.TypeServiceslmpl"
bean
id="
messageServices"
com.oa.services.impl.MessageServiceslmpl"
parent="
beanAbstract"
petServices"
com.oa.services.impl.PetServiceslmpl"
ownerServices"
com.oa.services.impl.OwnerServicesImpI"
textServices"
com.oa.services.impl.TextServiceslmpl"
adminServices"
com.oa.services.impl.AdminServicesImpI"
/beans>
以上代码是applicationContext-bean.xml文件中Session工厂的配置信息
宠物信息数据库表:
客
碱
允i锂
A
.iri
4
□Ql
p^tjname
wrehar
50
tyipename
viarclhar
D
*
remade
vardiar
200
回
userid
varchar
picture
vacdn
varclhar
@
vacadrr
varcfiar
1*
vaedate
iisuser
varchiar
匡
isbiter
vardhar
▼
如表所示,这是宠物信息的表,id是系统自动生成,其余的分别为宠物姓名,宠物类型,简介,添加该宠物的用户id,图片,年龄是否疫苗,疫苗时间,疫苗地点,是否领养,是否伤人等宠物信息。
接下来会对它如何连接到工程以及如何实现该功能做详细介绍。
其中图片在petaction中默认由本地,上传到服务器上的upload文件夹中,以便游客浏览以及管理员管理,id为系统自动+1生成,userid与user列表中的userid—致,typename与t_type列表中的typename—致,需要t_type预添加。
3.3宠物管理系统功能说明
根据对宠物管理系统业务流程的分析,用户登录后要能自己添加自己的宠物信息,
包括宠物的姓名,年龄,宠物的id,上传图片,是否疫苗,疫苗事件,疫苗地点,是否领养以及是否伤人等信息。
用户登录后可以浏览别的用户的宠物信息,而管理员可以对用户前台添加的信息进行修改与删除。
3.4主要的宠物信息管理的实现
341DAO层的实现
数据访问层,又称DAO层,在该层主要完成对象-关系映射的建立,通过这个映射,再通过访问业务对象即可实现对数据库的访问,使得开发中不必再用SQL语句编写复杂的数据库访问程序,这样就简化了对数据库的访问,提高了开发效率。
同时通过对象-关系映射的配置,可以建立业务对象之间的复杂关系,如一对多、多对一、一对
一、多对多等关系。
这样就不再需要在数据库中建立表之间的复杂联系,使得业务对象
之间的关系和数据库相分离,简化了数据库的建立和维护。
在这一层中主要使用
Hibernate框架来实现。
邛et以及邛et.hbm.xml为hibernate自动生成文件,用于连接数据库。
342Service层的实现
Service为业务逻辑层,主要业务逻辑包括这些类分别实现了相应的接口,这些类在工作的过程中还需要依赖相应的DAO对象和JavaBean对象。
实际操作时,在Action中通过Service对DAO接口进行调用,使整个系统有良好的层次。
比如这边Petservices调用TPet,而Petservicelmpl继承Petservices,进行查询、添加、修改和删除操作。
Petservices代码:
importcom.oa.models.TPet;
importcom.oa.utils.PageInfo;
publicinterfacePetServices{
//查询
publicPageInfoqueryPet(intcurrentpage,intpageunit,
HttpServletRequestrequest,Stringurl,Stringcond);
//添加
publicBooleanaddPet(TPetpet);
//修改
publicBooleanupdatePet(TPetpet);
//ID查询
publicTPetgetPet(Integerid);
//删除
publicTPetdelPet(Integerid);
}
PetserviceImpl主要代码:
publicclassPetServicesImpIextendsAbstractservicesimplementsPetServices{//查询
HttpServletRequestrequest,Stringurl,Stringcond){
introwCount=this.getPetsCount(cond);
List<
TPet>
list=this.getPets(currentpage,
pageunit,cond);
PageInfoPageInfo=newPageInfo(currentpage,pageunit,rowCount,url,list);
returnPageInfo;
//获得
publicList<
getPets(intcurrentpage,intpageunit.
Stringcond){
try{
Stringhql="
fromTPetawhere1=1"
+cond;
returnthis.query(hql,currentpage,pageunit);
}catch(Exceptione){
e.printStackTrace();
returnnuII;
publicBooleanaddPet(TPetpet){
save(pet);
returntrue;
以上为查询以及添加的代码,其余删除修改略。
343Action层的实现
,通过
Struts
Action用于处理视图层与业务层之间的衔接,当页面产生一个动作请求时候
Struts配置文件找到对应的Action中的接口,经过Action处理后返回结果并从的配置文件中找到对应的跳转页面。
查询代码:
publicStringqueryPet()throwsException{
if(getSessionAttribute("
querypageunit"
)==null){
setSessionAttribute("
this.pageunit);
StringBuffercond=newStringBuffer();
if(null!
=searchname&
&
"
匸searchname.trim()){
cond.append(”anda.petnamelike'
%"
+searchname.trim()+"
%'
);
intcurpage=
Integer.parseInt(this.getCurrentpage(ServletActionContext.getRequest()));
intpageunit=
Integer.parseInt(this.getPageunit(ServletActionContext.getRequest(),
));
Stringurl="
pet_queryPet?
a=a"
;
PageInfopageInfo=this.petServices.queryPet(curpage,
pageunit,ServletActionContext.getRequest(),url,cond.toString());
setRequestAttribute("
pageinfo"
pageInfo);
searchname"
this.searchname);
return"
queryPet"
预添加以及添加代码:
publicStringpreaddPet()throwsException{
TType>
list=typeServices.queryType();
setRequestAttribute("
list"
list);
preaddPet"
publicStringaddPet()throwsException{
TUseruser=(TUser)getSessionAttribute("
user"
TPetpet=newTPet();
pet.setAge(age);
pet.setIsbiter(isbiter);
pet.setIsuser(isuser);
pet.setPetname(petname);
pet.setRemark(remark);
pet.setTypename(typename);
pet.setUserid(user.getUsername());
pet.setVacadrr(vacadrr);
pet.setVaccin(vaccin);
pet.setVacdate(vacdate);
//将图片上传到工程下的upload文件夹中
StringtargetDirectory=ServletActionContext.getRequest()
.getRealPath("
/upload"
StringtargetFileName=generateFileName(pictureFileName);
Filetarget=newFile(targetDirectory,targetFileName);
FileUtils.copyFile(picture,target);
pet.setPicture(targetFileName);
petServices.addPet(pet);
addPet"
预添加将后台管理员添加的宠物类型添加到宠物信息,添加功能中有图片上传查看代码:
publicStringviewPet()throwsException{
TPetpet=petServices.getPet(id);
pet"
pet);
viewPet"
其余修改删除代码等省略。
struts中宠物管理功能的实现:
actionname="
pet_*"
class="
petAction"
method="
{1}"
resultname="
/files/pet/list.jspv/result>
vresultname="
type="
redirectAction"
pet_queryPet<
/result>
delPet"
p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaWeb 宠物店 课程设计 报告