教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教学研究 >

21第二十一讲struts+hibernate整合开发(三)

来源:网络收集 时间:2026-02-12
导读: JavaEE企业级开发 ——第二十一讲 授课教师:郑浩由NordriDesign提供http://www.77cn.com.cn 主要内容 购物车的设计与实现 Use case:cart 以买家身份访问商品详细信息页面,并将商品加 入购物车。 购物车表的设计(cart)cart表的字段 cart、user、goods三者的

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字,全部文档内容请下载后查看。喜欢就下载吧 ……
21第二十一讲struts+hibernate整合开发(三).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1584323.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)