关联关系练习中hibernate控制台输出的sql语句记录

这篇博客详细记录了在hibernate中处理商品Items和订单Orders多对多关联关系的操作过程,包括商品的新增、订单的创建以及中间表的插入。内容展示了hibernate生成的SQL语句,解释了为何在insert前后有select查询,并探讨了数据更新和关联查询的逻辑。
摘要由CSDN通过智能技术生成

商品Items和订单Orders的多对多关系。

 

jsp代码:

<jsp:useBean id="test" class="test.TestBean"/>
<%

	//【新增:test.add实际上在方法中是dao.add】三个商品
	test.addItem("001","A商品");
	test.addItem("002","B商品");
	test.addItem("003","C商品");
	
	//【选购:items.add,这里的add是Set类的方法】其中的两个商品
	Set<Items> items=new HashSet<Items>();
	items.add(test.loadItems(new Integer(1)));
	items.add(test.loadItems(new Integer(2)));
	
	//为选购的商品【产生一张订单:test.add实际上在方法中是dao.add】。备注:这里的订单号和金额是手动输入,不像一对多那样是随机生成的。
	test.addOrder("A00001",new Double(2100.5),items);
	
	//【选购:这里的add是Set类的方法】其中的两个商品
	Set<Items> items1=new HashSet<Items>();
	items1.add(test.loadItems(new Integer(2)));
	items1.add(test.loadItems(new Integer(3)));
	
	//为选购的商品产生另一张订单。备注:这里的订单号和金额是手动输入,不像一对多那样是随机生成的。
	test.addOrder("A00002",new Double(3680),items1);
	
	
	//获取两张订单的商品清单:用Orders和Items的实例获取
	Orders order1=test.loadOrders(new Integer(1));
	Orders order2=test.loadOrders(new Integer(2));
	out.println("<br>订单“"+order1.getOrderNo().trim()+"”中的商品清单为:");
	Iterator it=order1.getItems().iterator();
	Items item=null;
	while(it.hasNext()){
		item=(Items)it.next();
		out.println("<br>商品编号:"+item.getItemNo().trim());//trim():去掉字符串两端的多余的空格,注意是两端的空格
		out.println("<br>商品名称:"+item.getItemName().trim());
	}
	
	out.println("<br>订单“"+order2.getOrderNo().trim()+"”中的商品清单为:");
	it=order2.getItems().iterator();
	item=null;
	while(it.hasNext()){
		item=(Items)it.next();
		out.println("<br>商品编号:"+item.getItemNo().trim());
		out.println("<br>商品名称:"+item.getItemName().trim());
	}
	
	
	//查询某两个商品(三个商品中的两个商品)所在的订单:用Orders和Items的实例获取
	Items item1=test.loadItems(new Integer(1));
	Items item2=test.loadItems(new Integer(2));
	out.println("<br>商品“"+item1.getItemName().trim()+"”所在的订单为:");
	it=item1.getOrders().iterator();
	order1=null;
	while(it.hasNext()){
		order1=(Orders)it.next();
		out.println("<br>订单编号:"+order1.getOrderNo().trim());
	}
	
	out.println("<br>商品“"+item2.getItemName().trim()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值