0

私はそれらのテーブルを持っています

   table product(id,name)
   table component(id,name,quantity)
   table_product_component(p_id,C_id)

製品は多くのコンポーネントを持つことができ、コンポーネントは多くの製品に属することができます。

JOIN クエリを実行して、製品名、コンポーネント名、および数量を表示する ResultSet を取得するにはどうすればよいですか?

それらを返すためにSQLクエリを実行するとき、私は通常それをArrayListに保存します。したがって、この場合、Product、Componentタイプを保存するitemlineの新しいオブジェクトを作成します。次に、クエリの結果を ArrayList に格納できます。それでは、数量が 0 の場合に通知を表示するロジックを簡単に記述できます。

問題は、table_product_component(p_id,C_id) のようなビューまたはリレーショナル テーブルを使用したことがないため、データセットをクエリして必要な結果を取得する方法がわからないことです

これを解決するのに役立つアイデア、方法、コード、理論は大歓迎です。

実際にはサーブレット/JSP ロジックも必要です

ありがとうございました。

4

1 に答える 1

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> 

        <% }%> 
于 2012-09-19T18:21:17.197 に答える