java web 网页问题

<table border="1" align="center" width="400"> <% Connection conn = ConnectionDB.getConnectionDB(); String sql = " select * from diningcar,food,users where diningcar.foodId=food.id and diningcar.userName=users.userName collate chinese_prc_ci_as"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.executeQuery(); ResultSet rs = pstmt.executeQuery(); while(rs.next()){ %> <tr> <td colspan="2">用户名:<%=rs.getString("userName")%></td> </tr> <% while (rs.next()) { %> <tr> <td>菜名:<%=rs.getString("foodName")%></td> <td>单价:<%=rs.getString("price")%></td> </tr> <% } } %> </table>我想的是一个用户名对应他所点的所有菜,但是这样写,只能显示出他选的1个菜怎么改啊
2026年09月25日 02:35
有3个网友回答
网友(1):

rs.next用两次会过滤掉一个记录,用一个就可以了,另外建议你rs.next后,把数据都存到容器里,可以为一个map<>,key为username,value为一个list<>,存菜单对象,该对象有两个属性foodname和price,全装好以后再考虑显示的问题

网友(2):

首先,用户对于菜是一对多的关系,diningcar这个表相当于一个临时表,你两个rs.next是不是就不对了,第二个是不是应该限定username?

网友(3):

能不能将SQL语句执行的结果贴上来看看呢?