商品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()