网上书店设计与使用实验报告Word文档格式.docx
《网上书店设计与使用实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《网上书店设计与使用实验报告Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
用户:
1、用户可以注册会员,利用已经注册的用户名来登录相关界面。
2、用户可以登记自己的相关性信息,并且可以查看、更改自己的相关信息。
3、用户根据已经注册的用户名来登录系统。
用户可以查看所有物品的信息。
4、用户可以将想要购买的物品加入购物车,对已经加入购物车的物品,用户可以查看其相关信息,并且可以删除已经加入的物品。
5、对于购物车功能,可以增加新书、修改数量、删除已选书籍等,确认后,完成交易;
6、用户可以根据作者的姓名、书名、书号来检索书籍。
7、用户可以查看当前订单和以往订单的相关信息。
8、客户可以通过信息反馈系统跟书店员工进行交流。
管理员:
1、管理员可以删除、更改用户信息。
2、管理员可以删除、更改订单信息,可以输入订单的发货日期。
3、管理员可以删除、更改所有商品信息。
其他需求:
系统应该具有一定的安全性和可靠性。
数据库支持大量数据的使用。
三、概要设计
体系结构设计:
用户使用流程:
用户应用系统模块设计:
管理员应用模块:
四、源程序代码
Base:
/**供JSON-RPC组件远程调用的AjaxBean*/
publicclassAjaxBeanextendsBaseLog{
/**取得商品分类列表*/
publicString[][]getCategory(){
String[][]options=null;
MerServiceservice=newMerServiceImpl();
try{
Listlist=service.browseCategory();
Categorycate=null;
inti=0;
if(list!
=null){
options=newString[list.size()][2];
Iteratorit=list.iterator();
while(it.hasNext()){
cate=(Category)it.next();
options[i][0]=cate.getId().toString();
options[i][1]=cate.getCateName().trim();
i++;
}
}else{
options=newString[1][2];
options[0][0]="
0"
;
options[0][1]="
无商品分类"
}
}catch(Exceptionex){
logger.info("
在执行AjaxBean类中的getCategory方法时出错:
\n"
);
ex.printStackTrace();
}
returnoptions;
}
/**取得会员级别*/
publicString[][]getMemberLevel(){
MemServiceservice=newMemServiceImpl();
Listlist=service.browseMemberLevel();
Memberlevelml=null;
ml=(Memberlevel)it.next();
options[i][0]=ml.getId().toString();
options[i][1]=ml.getLevelName().trim();
无会员级别"
在执行AjaxBean类中的getMemberLevel方法时出错:
/**注册登录帐号有效性验证*/
publicbooleanchkLoginName(StringloginName){
booleanresult=false;
result=service.chkLoginName(loginName);
在执行AjaxBean类中的chkLoginName方法时出错:
returnresult;
/**修改选购商品数量*/
publicbooleanmodiCart(intid,intnumber){
CartServiceservice=newCartServiceImpl();
result=service.modiCart(Integer.valueOf(id),number);
在执行AjaxBean类中的modiCart方法时出错:
/**调整会员级别*/
publicbooleanupdateLevel(Integerid,IntegerlevelId){
Membermember=service.loadMember(id);
Memberlevellevel=service.loadMemberLevel(levelId);
member.setMemberlevel(level);
service.updateMember(member);
result=true;
在执行AjaxBean类中的updateLevel方法时出错:
}}
ORM:
Mysessionfactory:
publicclassMySessionFactory{
privatestaticStringCONFIG_FILE_LOCATION="
/hibernate.cfg.xml"
privatestaticfinalThreadLocalthreadLocal=newThreadLocal();
privatestaticConfigurationconfiguration=newConfiguration();
privatestaticorg.hibernate.SessionFactorysessionFactory;
privatestaticStringconfigFile=CONFIG_FILE_LOCATION;
static{
try{
configuration.configure(configFile);
sessionFactory=configuration.buildSessionFactory();
}catch(Exceptione){
System.err.println("
%%%%ErrorCreatingSessionFactory%%%%"
e.printStackTrace();
privateMySessionFactory(){
publicstaticSessiongetSession()throwsHibernateException{
Sessionsession=(Session)threadLocal.get();
if(session==null||!
session.isOpen()){
if(sessionFactory==null){
rebuildSessionFactory();
session=(sessionFactory!
=null)?
sessionFactory.openSession():
null;
threadLocal.set(session);
returnsession;
/**Rebuildhibernatesessionfactory*/
publicstaticvoidrebuildSessionFactory(){
/*Closethesinglehibernatesessioninstance.*/
publicstaticvoidcloseSession()throwsHibernateException{
threadLocal.set(null);
if(session!
=null){
session.close();
/*returnsessionfactory*/
publicstaticorg.hibernate.SessionFactorygetSessionFactory(){
returnsessionFactory;
/*returnsessionfactorysessionfactorywillberebuildedinthenextcall*/
publicstaticvoidsetConfigFile(StringconfigFile){
MySessionFactory.configFile=configFile;
sessionFactory=null;
/*returnhibernateconfiguration*/
publicstaticConfigurationgetConfiguration(){
returnconfiguration;
}}
SERVICE:
AdminServiceImpl:
/**系统用户管理接口实现*/
publicclassAdminServiceImplextendsBaseLogimplementsAdminService{
/**系统管理员登录*/
publicAdminadminLogin(StringloginName,StringloginPwd)throwsException{
Sessionsession=MySessionFactory.getSession();
Transactiontx=null;
Adminadmin=null;
Stringhql="
selectafromAdminasawherea.loginName=:
loginNameanda.loginPwd=:
loginPwd"
Queryquery=session.createQuery(hql);
query.setString("
loginName"
loginName);
loginPwd);
query.setMaxResults
(1);
tx=session.beginTransaction();
admin=(Admin)query.uniqueResult();
mit();
if(tx!
=null)tx.rollback();
在执行AdminServiceImpl类中的adminLogin方法时出错:
}finally{
MySessionFactory.closeSession();
}
returnadmin;
/**新增管理员*/
publicbooleanaddAdmin(Adminadmin)throwsException{
booleanstatus=false;
session.save(admin);
status=true;
在执行AdminServiceImpl类中的addAdmin方法时出错:
returnstatus;
}
/**浏览管理员*/
publicListbrowseAdmin()throwsException{
Listlist=null;
Queryquery=session.createQuery("
fromAdminasaorderbya.id"
list=query.list();
if(!
Hibernate.isInitialized(list))Hibernate.initialize(list);
在执行AdminServiceImpl类中的browseAdmin方法时出错:
returnlist;
/**删除指定的管理员*/
publicbooleandelAdmin(Integerid)throwsException{
Adminadmin=(Admin)session.load(Admin.class,id);
session.delete(admin);
在执行AdminServiceImpl类中的delAdmin方法时出错:
/**装载指定的管理员*/
publicAdminloadAdmin(Integerid)throwsException{
admin=(Admin)session.get(Admin.class,id);
在执行AdminServiceImpl类中的loadAdmin方法时出错:
CartServiceImpl:
publicclassCartServiceImplextendsBaseLogimplementsCartService{
/**选购商品*/publicbooleanaddCart(Membermember,Merchandisemer,intnumber)
throwsException{Sessionsession=MySessionFactory.getSession();
try{Cartselectedmersel=null;
intfavourable=member.getMemberlevel().getFavourable().intValue();
//判断该会员是否已经有使用中的购物车
Stringhql="
fromCartasawherea.member=:
memberanda.cartStatus=0"
query.setEntity("
member"
member);
Cartcart=(Cart)query.uniqueResult();
if(cart==null){cart=newCart();
cart.setCartStatus(newInteger(0));
cart.setMember(member);
cart.setMoney(Double.valueOf(number*mer.getPrice().doubleValue()));
cart.getMerchandises().add(mer);
session.save(cart);
}else{
//如果选购的是已经选购过的商品则只增加商品数量即可
hql="
selectafromCartselectedmerasawherea.cart=:
cartidanda.merchandise=:
meridorderbya.iddesc"
query=session.createQuery(hql);
query.setInteger("
cartid"
cart.getId().intValue());
merid"
mer.getId().intValue());
query.setMaxResults
(1);
sel=(Cartselectedmer)query.uniqueResult();
inttotal=number;
System.out.println((total*mer.getPrice().doubleValue()*favourable/100));
if(sel!
=null){total=n