21第二十一讲struts+hibernate整合开发(三)
JavaEE企业级开发 ——第二十一讲
授课教师:郑浩由NordriDesign提供http://www.77cn.com.cn
主要内容
购物车的设计与实现
Use case:cart 以买家身份访问商品详细信息页面,并将商品加 入购物车。
购物车表的设计(cart)cart表的字段 cart、user、goods三者的关系CREATE TABLE `cart` ( `Cartid` bigint(20) NOT NULL AUTO_INCREMENT, `Buyerid` bigint(20) NOT NULL, `Salerid` bigint(20) NOT NULL, `Goodsid` bigint(20) NOT NULL, PRIMARY KEY (`Cartid`), KEY `bfkey` (`Buyerid`), KEY `sfkey` (`Salerid`), KEY `gfkey` (`Goodsid`), CONSTRAINT `bfkey` FOREIGN KEY (`Buyerid`) REFERENCES `user` (`UID`), CONSTRAINT `gfkey` FOREIGN KEY (`Goodsid`) REFERENCES `goods` (`GID`), CONSTRAINT `sfkey` FOREIGN KEY (`Salerid`) REFERENCES `user` (`UID`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=gbk;
创建pojo—Cart反转方式:如图
建立关联映射:主-副 建立关联映射:副-主
各个POJO的属性public class Cart implements java.io.Serializable {
// Fieldsprivate private private private Long cartid; Goods goods; User userByBuyerid; User userBySalerid;
// Constructors /** default constructor */ public Cart() { }
映射文件<many-to-one name="goods" class="com.tgoo.pojo.Goods" fetch="select"> <column name="Goodsid" not-null="true" /> </many-to-one> <many-to-one name="userByBuyerid" class="http://www.77cn.com.cner" fetch="select"> <column name="Buyerid" not-null="true" /> </many-to-one> <many-to-one name="userBySalerid" class="http://www.77cn.com.cner" fetch="select"> <column name="Salerid" not-null="true" /> </many-to-one>
User: private Set cartsForBuyerid = new HashSet(0); private Set cartsForSalerid = new HashSet(0); Goods: private Set carts = new HashSet(0);Goods.hbm.xml: <set name="carts" inverse="true"> <key>
<column name="Goodsid" not-null="true" /></key> <one-to-many class="com.tgoo.pojo.Cart" />
</set>
Goodsdetail.jsp 进入商品详细信息页面设计页面获取商品的基本信息
通过商品获得卖家信息考虑隐式如何传递参数
获取商品的基本信息Session dbsession = HibernateSessionFactory.getSession();Transaction ts = dbsession.beginTransaction(); Query qu = dbsession.createQuery(“from Goods where gid=?”); qu.setInteger(0,request.getAttribute(“gid”)) Goods goods= (Goods)qu.uniqueResult(); http://www.77cn.com.cnmit(); goods.getGimg() goods.getGname() goods.getGinfo() …………
通过商品获得卖家信息前提:商品和卖家之间建立了单向多对一的关联 映射User saler = goods.getUser(); saler.getUid() ……
考虑隐式如何传递参数<form action="cart.do" > <!– 加入卖家Id --> <input type="hidden" name="saler" value="<%=saler.getUid() %>"><!– 加入买家Id -->
<input type="hidden" name="buyer" value="<%=request.getAttribute("buyer")%>"><!– 加入商品Id -->
<input type="hidden" name="goods" value="<%=goods.getGid()%>">
<input type="submit" value="加入购物车"></form>
CartFor
mpublic class CartForm extends ActionForm {
private int saler; private int buyer; private int goods;
/*省略get、set方法*/ }
CartAction 获取Goods、User(卖家)、User(买家)实例 。Query qu1 = dbsession.createQuery("from Goods where gid=?"); qu1.setInteger(0,cartForm.getGoods());
Goods goods = (Goods) qu1.uniqueResult();
/*GoodsDAO goodsdao = new GoodsDAO(); Goods goods = goodsdao.findById(cartForm.getGoods()); */
将信息写入Cart对象,并完成持久化操作Cart cart = new Cart(); cart.setGoods(goods);
cart.setUserByBuyerid(buyer);cart.setUserBySalerid(saler); dbsession.save(cart);
http://www.77cn.com.cnmit();CartDAO cartdao = new CartDAO(); cartdao.save(cart);
…… 此处隐藏:1040字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




