gpt4 book ai didi

java - Vector 不断向自身追加行而不替换 - java(表和数据库)

转载 作者:行者123 更新时间:2023-11-30 04:27:09 24 4
gpt4 key购买 nike

Vector vect = new Vector();
Vector vect_container = new Vector();
for(int i=0;i<2;i++){
rs.next();
vect.addElement(rs.getInt("ID"));
vect.addElement(rs.getString("Name"));
vect.addElement(rs.getFloat("Price"));
vect.addElement(rs.getDouble("Quantity"));
vect.addElement(rs.getDate("datetime"));
vect.addElement(rs.getString("person"));
vect_container.add(vect);
}

我通过 ResultSet(rs) 从数据库表中获取行,但 vector 附加所有行的结果(不是逐行)。输出为:

[
[23424234, Congestal, 10.0, 3500.0, 2013-03-23,
Ahmed Ali, 34535647, Decksafeen, 35.0, 2000.0, 2013-03-23, Osama ],
[23424234, Congestal, 10.0, 3500.0, 2013-03-23,
Ahmed Ali, 34535647, Decksafeen, 35.0, 2000.0, 2013-03-23, Osama ]
]

我相信 vect_container 中的第一个元素应该只保存第一行,第二个元素应该保存两行,依此类推。

但事实似乎并非如此。

最佳答案

您不断向vect_container添加相同的Vector。您需要在每次循环迭代中添加一个新的。

移动此行:

Vector vect = new Vector();

在 rs.next() 调用之后:

rs.next();
Vector vect = new Vector();

此外,不以这种方式循环 ResultSet 可能是安全的。更惯用的方式是:

while(rs.next()) {
Vector vect = new Vector();
vect.addElement(rs.getInt("ID"));
vect.addElement(rs.getString("Name"));
vect.addElement(rs.getFloat("Price"));
vect.addElement(rs.getDouble("Quantity"));
vect.addElement(rs.getDate("datetime"));
vect.addElement(rs.getString("person"));
vect_container.add(vect);
}

关于java - Vector 不断向自身追加行而不替换 - java(表和数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15594463/

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