网上书店设计与使用实验报告.docx

上传人:b****4 文档编号:4265133 上传时间:2022-11-28 格式:DOCX 页数:17 大小:429.04KB
下载 相关 举报
网上书店设计与使用实验报告.docx_第1页
第1页 / 共17页
网上书店设计与使用实验报告.docx_第2页
第2页 / 共17页
网上书店设计与使用实验报告.docx_第3页
第3页 / 共17页
网上书店设计与使用实验报告.docx_第4页
第4页 / 共17页
网上书店设计与使用实验报告.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

网上书店设计与使用实验报告.docx

《网上书店设计与使用实验报告.docx》由会员分享,可在线阅读,更多相关《网上书店设计与使用实验报告.docx(17页珍藏版)》请在冰豆网上搜索。

网上书店设计与使用实验报告.docx

网上书店设计与使用实验报告

实验报告

 

题目:

网上书店

 

专业软件工程

学生姓名

班级学号

指导教师

指导单位

日期2010-6-8

 

网上书店

一、课题内容和要求

内容:

创建一个网上书店平台。

实现网上书店的基本功能,例如:

用户用可查看可购买的书。

用户可查看书的具体信息。

在此基础上可以增加相应功能。

要求:

利用J2EE编程开发。

可以在实现基本功能的基础上增加其他功能。

界面良好。

用户可以通过互联网与浏览器访问网上书店平台。

二、需求分析

用户:

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(){

String[][]options=null;

MemServiceservice=newMemServiceImpl();

try{

Listlist=service.browseMemberLevel();

Memberlevelml=null;

inti=0;

if(list!

=null){

options=newString[list.size()][2];

Iteratorit=list.iterator();

while(it.hasNext()){

ml=(Memberlevel)it.next();

options[i][0]=ml.getId().toString();

options[i][1]=ml.getLevelName().trim();

i++;

}

}else{

options=newString[1][2];

options[0][0]="0";

options[0][1]="无会员级别";

}

}catch(Exceptionex){

logger.info("在执行AjaxBean类中的getMemberLevel方法时出错:

\n");

ex.printStackTrace();

}

returnoptions;

}

/**注册登录帐号有效性验证*/

publicbooleanchkLoginName(StringloginName){

MemServiceservice=newMemServiceImpl();

booleanresult=false;

try{

result=service.chkLoginName(loginName);

}catch(Exceptionex){

logger.info("在执行AjaxBean类中的chkLoginName方法时出错:

\n");

ex.printStackTrace();

}

returnresult;

}

/**修改选购商品数量*/

publicbooleanmodiCart(intid,intnumber){

CartServiceservice=newCartServiceImpl();

booleanresult=false;

try{

result=service.modiCart(Integer.valueOf(id),number);

}catch(Exceptionex){

logger.info("在执行AjaxBean类中的modiCart方法时出错:

\n");

ex.printStackTrace();

}

returnresult;

}

/**调整会员级别*/

publicbooleanupdateLevel(Integerid,IntegerlevelId){

MemServiceservice=newMemServiceImpl();

booleanresult=false;

try{

Membermember=service.loadMember(id);

Memberlevellevel=service.loadMemberLevel(levelId);

member.setMemberlevel(level);

service.updateMember(member);

result=true;

}catch(Exceptionex){

logger.info("在执行AjaxBean类中的updateLevel方法时出错:

\n");

ex.printStackTrace();

}

returnresult;

}}

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(){

try{

configuration.configure(configFile);

sessionFactory=configuration.buildSessionFactory();

}catch(Exceptione){

System.err.println("%%%%ErrorCreatingSessionFactory%%%%");

e.printStackTrace();

}

}

/*Closethesinglehibernatesessioninstance.*/

publicstaticvoidcloseSession()throwsHibernateException{

Sessionsession=(Session)threadLocal.get();

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;

try{

Stringhql="selectafromAdminasawherea.loginName=:

loginNameanda.loginPwd=:

loginPwd";

Queryquery=session.createQuery(hql);

query.setString("loginName",loginName);

query.setString("loginPwd",loginPwd);

query.setMaxResults

(1);

tx=session.beginTransaction();

admin=(Admin)query.uniqueResult();

mit();

}catch(Exceptionex){

if(tx!

=null)tx.rollback();

logger.info("在执行AdminServiceImpl类中的adminLogin方法时出错:

\n");

ex.printStackTrace();

}finally{

MySessionFactory.closeSession();

}

returnadmin;

}

/**新增管理员*/

publicbooleanaddAdmin(Adminadmin)throwsException{

Sessionsession=MySessionFactory.getSession();

Transactiontx=null;

booleanstatus=false;

try{

tx=session.beginTransaction();

session.save(admin);

mit();

status=true;

}catch(Exceptionex){

if(tx!

=null)tx.rollback();

logger.info("在执行AdminServiceImpl类中的addAdmin方法时出错:

\n");

ex.printStackTrace();

}finally{

MySessionFactory.closeSession();

}

returnstatus;}

/**浏览管理员*/

publicListbrowseAdmin()throwsException{

Sessionsession=MySessionFactory.getSession();

Transactiontx=null;

Listlist=null;

try{

Queryquery=session.createQuery("fromAdminasaorderbya.id");

tx=session.beginTransaction();

list=query.list();

mit();

if(!

Hibernate.isInitialized(list))Hibernate.initialize(list);

}catch(Exceptionex){

if(tx!

=null)tx.rollback();

logger.info("在执行AdminServiceImpl类中的browseAdmin方法时出错:

\n");

ex.printStackTrace();

}finally{

MySessionFactory.closeSession();

}

returnlist;}

/**删除指定的管理员*/

publicbooleandelAdmin(Integerid)throwsException{

Sessionsession=MySessionFactory.getSession();

Transactiontx=null;

booleanstatus=false;

try{

tx=session.beginTransaction();

Adminadmin=(Admin)session.load(Admin.class,id);

session.delete(admin);

mit();

status=true;

}catch(Exceptionex){

if(tx!

=null)tx.rollback();

logger.info("在执行AdminServiceImpl类中的delAdmin方法时出错:

\n");

ex.printStackTrace();

}finally{

MySessionFactory.closeSession();

}

returnstatus;}

/**装载指定的管理员*/

publicAdminloadAdmin(Integerid)throwsException{

Sessionsession=MySessionFactory.getSession();

Transactiontx=null;

Adminadmin=null;

try{

tx=session.beginTransaction();

admin=(Admin)session.get(Admin.class,id);

mit();

}catch(Exceptionex){

if(tx!

=null)tx.rollback();

logger.info("在执行AdminServiceImpl类中的loadAdmin方法时出错:

\n");

ex.printStackTrace();

}finally{

MySessionFactory.closeSession();

}

returnadmin;}

CartServiceImpl:

publicclassCartServiceImplextendsBaseLogimplementsCartService{

/**选购商品*/publicbooleanaddCart(Membermember,Merchandisemer,intnumber)

throwsException{Sessionsession=MySessionFactory.getSession();

Transactiontx=null;

booleanstatus=false;

try{Cartselectedmersel=null;

intfavourable=member.getMemberlevel().getFavourable().intValue();//判断该会员是否已经有使用中的购物车

Stringhql="fromCartasawherea.member=:

memberanda.cartStatus=0";

Queryquery=session.createQuery(hql);

query.setEntity("member",member);

query.setMaxResults

(1);

tx=session.beginTransaction();

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());

query.setInteger("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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1