gpt4 book ai didi

java - 如何循环使用多个 ResultSet

转载 作者:行者123 更新时间:2023-12-02 03:34:45 25 4
gpt4 key购买 nike

enter image description here
我想复制上面显示的图片上的内容
所以我正在考虑使用嵌套 while使用 ResultSet 循环每个循环访问数据库中的不同表,如下面的代码所示

<%
String Query2 = "SELECT * FROM transaction";
rs = st.executeQuery(Query2);
%>

<h2 align="center">Member</h2>
<%
while(rs.next())
{
%>
<table bgcolor="#000000" align="center" cellspacing="10px">
<tr>
<th>Transaction ID</th>
<th>Transaction Date</th>
<th>Costumer Name</th>
<th> </th>
</tr>
<tr>
<td><%=rs.getString("Transaction_ID")%></td>
<td><%=rs.getString("Transaction_Date")%></td>
<td><%=rs.getString("User_Name")%></td>
<td> </td>
</tr>
<%
String Query3 = "SELECT * FROM list WHERE User_Name = '"+rs.getString("User_Name")+"' AND Date = '"+rs.getString("Transaction_Date")+"'";
ResultSet rs2 = st.executeQuery(Query3);

while(rs2.next())
{
%>
<tr>
<td>Product</td>
<td>Quantity</td>
<td>Price</td>
<td>Total</td>
</tr>
<tr>
<td><img src="Picture/<%=rs.getString("Image")%>"></td>
<td><%=rs.getString("Quantity")%></td>
<td><%=rs.getString("Price")%></td>
<td><%=rs.getString("Total")%></td>
</tr>
<%
}
%>
</table>
<br/>
<%
}
%>


但我收到错误消息 javax.servlet.ServletException: java.sql.SQLException: Operation not allowed after ResultSet closed
所以我尝试使用另一个变量 ResultSet这是 rs2但我仍然收到相同的错误消息
我该如何解决这个问题?或者还有其他方法可以用来做到这一点吗?
我在这里使用的两个表在字段 User_Name 和 Transaction_Date 上具有相同的值,如 Query3 所示。

最佳答案

正如我所看到的,您对两个查询使用相同的 Statement 对象。正如文档 ( http://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html ) 所说,默认情况下,每个 Statement 对象只能同时打开一个 ResultSet 对象。因此,如果一个 ResultSet 对象的读取与另一个 ResultSet 对象的读取交错,则每个 ResultSet 对象都必须由不同的 Statement 对象生成。如果存在打开的语句,Statement 接口(interface)中的所有执行方法都会隐式关闭语句的当前 ResultSet 对象。

关于java - 如何循环使用多个 ResultSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37574894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com