结合来自JSP,Servlet中两个表的数据的ResultSet

时间:2012-09-19 04:40:03

标签: sql jsp join

我有桌子

   table product(id,name)
   table component(id,name,quantity)
   table_product_component(p_id,C_id)
一个产品可以有很多组件,一个组件可以属于很多产品。

如何执行JOIN查询并获取将显示产品名称,组件名称和数量的ResultSet?

当我执行sql查询以返回那些时,我通常将它存储在ArrayList中所以在这种情况下我创建了一个新的itemline对象,它将存储Product,Component类型。然后我可以将查询结果存储在ArrayList中。那么,如果数量为0,那么我可以简单地编写逻辑来显示通知吗?

问题是我从未使用像table_product_component(p_id,C_id)这样的视图或关系表 所以我不确定如何查询数据集以获得我想要的结果

欢迎任何想法,方法,代码,理论帮助我解决这个问题。

我实际上也需要servlet / JSP逻辑

谢谢。

1 个答案:

答案 0 :(得分:0)

所以我以某种方式解决了这个问题。我在jsp中使用java做了

                  <%
            Cart cart = (Cart) session.getAttribute("cart");
            List<LineItem> items = cart.getItems();
            for (LineItem item : items) {
            Product product = item.getProduct();


        %> 

        <tr> 
            <td> 
                <form action="<%=response.encodeURL("DisplayCart")%>"> 
                    <input type="hidden" name="productId"  
                           value="<%=product.getId()%>"> 
                    <input type="text" size=2 name="quantity"  
                           value="<%=item.getQuantity()%>"> 
                    <input type="submit" value="Update"> 
                </form> 
            </td> 
            <td> 
                <%=product.getDescription()%> 
            </td>
            <td><%=product.getPrice()%></td>
            <td> 
                <form action="<%= response.encodeURL("DisplayCart")%>"> 
                    <input type="hidden" name="productId"  
                           value="<%=product.getId()%>"> 
                    <input type="hidden" name="quantity"  
                           value="0"> 
                    <input type="submit" value="RemoveButton"> 
                </form> 
            </td>
        <td>           
       <%
        String p = product.getId();        
        List<String> pcs = PcDb.selectCidFromPc(p);
        for (String temp : pcs) {

        Component component = ComponentDb.selectComponent(temp);
        int c = component.getQuantity(); 
        if(c==0){
        out.println("Product is not in stock at the moment, expect delays");
        }
        }
        %>  
        </td>
        </tr> 

        <% }%>