gpt4 book ai didi

Java ArrayList 正在发挥作用

转载 作者:行者123 更新时间:2023-12-01 07:23:57 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题。我有一个包含 6 个不同“出价”的数据库。我正在尝试使用以下代码提取出价:

public ArrayList<ProjectBid> getProjectBids(String projectID)
{
ArrayList<ProjectBid> result = new ArrayList<ProjectBid>();

ProjectBid bid = new ProjectBid();

try{

st = con.createStatement();
String query = "SELECT * FROM bids WHERE projectID=\""+projectID+"\"";
System.out.println(query);
ResultSet rs = st.executeQuery(query);


while (rs.next())
{
bid.setProjectID(projectID);
bid.setBidID(rs.getString("bidID"));
bid.setBidderEmail(rs.getString("bidder_email"));
bid.setBidAmount(rs.getInt("bid_amount"));
bid.setBidMessage(rs.getString("bid_message"));
bid.setTimestamp(rs.getString("timestamp"));

result.add(bid);
}
st.close();

}
catch(Exception ex){
System.out.println("Exception: "+ex);
}

return result;
}

由于某种原因,我的 ArrayList 结果给了我 6 个相同的“出价”对象,而不是单独添加数据库中的每个“出价”。如果我在 while 循环中添加 "System.out.println(bid.getBidID);" ,代码将按预期运行 ResultSet,并且每次运行的正确值都会正确打印。谁能告诉我我的代码有什么问题吗?

谢谢

最佳答案

您应该将 ProjectBid bid = new ProjectBid(); 移至 while 循环内。使用当前代码,您将更新在 while 循环外部定义的相同 bid 变量,因此它会在循环完成后获取最后一条记录的值。

关于Java ArrayList 正在发挥作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29180011/

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