拍卖系统项目案例4教学lg4v_第1页
拍卖系统项目案例4教学lg4v_第2页
拍卖系统项目案例4教学lg4v_第3页
拍卖系统项目案例4教学lg4v_第4页
拍卖系统项目案例4教学lg4v_第5页
已阅读5页,还剩29页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目案例4“e拍”在线拍卖系统(二)

问题描述添加商品浏览在拍商品嵌在首页中显示出价记录对符合条件的商品显示“出价”按钮用户登录后,才显示当前日期在拍卖日期之间才显示当前登录用户是买家的不显示问题分析-1将用户表纳入Hibernate管理:为什么?

商品表(Goods)和出价表(Bid)需要关联到用户表怎样做?保留原有User实体类手动编写配置文件在Hibernate.cfg.xml中增加:

<mappingresource="y2ssh/[yourname]/xmal4/entity/User.hbm.xml"/>在实际软件开发中,常常遇到在遗留系统上开发的情况问题分析-2分层开发模式:开发顺序总体顺序:

entity(实体)

DAO(数据访问层)

Biz(业务逻辑层)

WebWeb层开发:ActionFormActionJSP页面每一层只考虑自己的职责DAO层是面向数据的,职责是提供数据增删改查的方法BIZ层是面向业务的。根据业务的需要建立相应的方法。Action层方法(采用DispatchAction)的设定依据页面操作和流转的关系设定要点:接口的设计难点分析-1生成实体类和配置文件时,不能覆盖User实体类为什么?

不能破坏原有系统怎样做?

将数据库中外键删除再生成实体类和映射文件外键关联关系由程序维护难点分析-2配置关联Goods到User的两个many-to-one关联先修改实体类1、删掉salerId和buyerId属性2、增加buyer和saler属性在Goods.hbm.xml配置关联//privateLongsalerId;//privateLongbuyerId;privateUsersaler;privateUserbuyer;<many-to-onename="buyer" class="y2ssh.zhangcuishan.xmal3.entity.User" fetch="select"><columnname="buyer_id"/></many-to-one><many-to-onename="saler" class="y2ssh.zhangcuishan.xmal3.entity.User" fetch="select"><columnname="saler_id"not-null="true"/></many-to-one>难点分析-3配置关联Goods到Bid的一个one-to-many关联先修改实体类增加bids属性在Goods.hbm.xml配置关联Bid到Goods的many-to-one关联:goodsBid到User的many-to-one关联:buyerprivateSetbids=newHashSet(0);<setname="bids"inverse="true"><key><columnname="goods_id"not-null="true"/></key><one-to-many class="y2ssh.zhangcuishan.xmal4.entity.Bid"/></set>阶段划分第一阶段(30分钟)实现系统DAO层:配置Hibernate,编写映射文件,编写DAO层代码第二阶段(20分钟)实现系统业务逻辑层(Biz层)第三阶段(10分钟)编写FORM代码第四阶段(30分钟)编写页面和ACTION代码,实现添加商品功能第五阶段(30分钟)编写页面和ACTION代码,实现在拍商品列表功能第六阶段(15分钟)编写页面和ACTION代码,实现显示出价记录第七阶段(15分钟)编写页面和ACTION代码,实现符合要求的商品,显示“出价”按钮第一阶段第一阶段(30分钟)实现系统DAO层:配置Hibernate编写映射文件编写DAO层代码要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第一阶段抽查学员的操作结果教员给出点评或集中演示难点部分

第一阶段参考代码1第一阶段参考代码:publicclassGoodsDAOHibimpl extendsBaseHibernateDAO implementsGoodsDAO{publicvoidadd(Goodsitem){ super.add(item);}publicvoiddel(Serializablekey){ super.del(key,Goods.class);}publicGoodsget(Serializablekey){ Goodsitem= (Goods)super.get(key,Goods.class); returnitem;}......}publicinterfaceGoodsDAO{publicvoidadd(Goodsitem);publicvoiddel(java.io.Serializablekey);publicvoidupdate(Goodsitem);publicGoodsget(java.io.Serializablekey);publicListsearch(Goodscondition);}第二阶段第二阶段(20分钟)实现系统业务逻辑层(Biz层)要求学员自己动手编写代码,教员巡视,解答学员提出的问题阶段检查针对第二阶段抽查学员的编码结果教员给出点评或集中演示难点部分第二阶段标准代码演示-1GoodsBizImplpublicclassGoodsBizImplimplementsGoodsBiz{privateGoodsDAOgoodsDAO=newGoodsDAOHibimpl();privateUserDAOuserDAO=newUserDAOHibimpl();publicvoidaddGoods(Goodsitem,longsalerId){Usersaler=this.userDAO.get(salerId);if(saler==null){ return;}item.setSaler(saler);this.goodsDAO.add(item);}publicvoiddelGoods(Longkey){ this.goodsDAO.del(key);}...}第二阶段标准代码演示-2GoodsBizImplpublicclassGoodsBizImplimplementsGoodsBiz{...publicListgetMyGoodsList(LonguserId){ Goodscondition=newGoods(); Usersaler=this.userDAO.get(userId); condition.setSaler(saler); Listret=this.goodsDAO.search(condition); returnret;}publicListgetOnSaleGoodsList(){ Goodscondition=newGoods(); condition.setGoodsStatus( GoodsBiz.GOODS_STATUS_ON_SALE); Listret=this.goodsDAO.search(condition); returnret;}}第三阶段第三阶段(10分钟):编写FORM代码要求学员自己动手编写代码,教员巡视,解答学员提出的问题阶段检查针对第三阶段抽查学员的编码结果教员给出点评第三阶段标准代码演示GoodsFormpackagey2ssh.zhangcuishan.xmal4.web.form;importorg.apache.struts.action.ActionForm;importy2ssh.zhangcuishan.xmal4.entity.Goods;publicclassGoodsFormextendsActionForm{

privateGoodsitem=newGoods(); publicGoodsgetItem(){ returnitem; } publicvoidsetItem(Goodsitem){ this.item=item; } }第四阶段第四阶段(30分钟):编写页面和ACTION代码,实现添加商品功能

要求学员自己动手编写代码,教员巡视,解答学员提出的问题阶段检查针对第四阶段抽查学员的编码结果抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果教员给出点评第四阶段标准代码演示-1Action代码publicclassGoodsActionextendsBaseAction{

privateGoodsBizgoodsBiz=newGoodsBizImpl(); privateBidBizbidBiz=newBidBizImpl();

//转到添加商品页面

publicActionForwardtoAdd(...){ returnmapping.findForward("add_goods"); } //执行添加商品操作

publicActionForwarddoAdd(...){ GoodsFormgoodsForm=(GoodsForm)form; Goodsitem=goodsForm.getItem(); this.goodsBiz.addGoods( item,super.getCurrUserId(request)); returnmapping.findForward("index"); }}publicclassBaseActionextendsDispatchAction{ publicLonggetCurrUserId(HttpServletRequestrequest){ Useruser=this.getCurrUser(request); if(null==user){ returnnewLong(-1); } else{ returnuser.getUserId(); } } publicUsergetCurrUser(HttpServletRequestrequest){ Useruser=(User)request.getSession().getAttribute("user"); returnuser; }}第四阶段标准代码演示-2图片预览效果的实现:<script>functionsetGoodsPic(url){varoImg=document.getElementById("goodsPic");oImg.src=url;oImg.style.height="240px";}</script><html:textproperty="item.goodsPic" onblur="javascript:setGoodsPic(this.value);"/><imgid="goodsPic"src="images/preview.jpg"/>第四阶段运行效果演示第五阶段第五阶段(30分钟):编写页面和ACTION代码,实现在拍商品列表功能要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第五阶段抽查学员的编码结果抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果教员给出点评第五阶段标准代码演示在首页包含在拍商品列表<bean:includeid="t" page="/goods.do?operate=toOnSaleGoodsList"/><bean:writename="t"filter="false"/>第六阶段第六阶段(15分钟):显示出价记录要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第三阶段抽查学员的编码结果抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果教员给出点评第六阶段标准代码演示-1出价记录<logic:notEmptyname="item"property="bids"><divstyle="width:300px;padding-left:10px;">

出价记录:[<spanonclick="javascript:SwitchDisplay('div${item.goodsId}');"> +/-</span>]<br/><divstyle="display:none;"id="div${item.goodsId}"><logic:iterateid="bid"name="item"property="bids"><em>${bid.buyer.userName}</em><bean:writename="bid"property="bidTime"format="yyyy-MM-ddhh:mm"/><spanstyle="color:green;font-weight:bold;">${bid.bidPrice}</span><br/></logic:iterate></div></div></logic:notEmpty>第七阶段第七阶段(15分钟):符合要求的商品,显示“出价”按钮要求学员自己动手编写代码,教员巡视,解答学员提出的问题阶段检查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论