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)从数据库表中获取行,但是向量追加的是所有行的结果(而不是逐行)。输出为:
[
[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中的第一个元素应该只包含第一行,第二个元素应该包含两行,依此类推。
但事实似乎并非如此。
发布于 2013-03-24 10:25:01
您一直在向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);
}发布于 2013-03-24 10:25:08
您不能一直将数据加载到相同的Vector中。您需要为每一行创建一个Vector:
//Vector vect = new Vector();
Vector vect_container = new Vector();
for(int i=0;i<2;i++){
rs.next();
Vector vect = new Vector();https://stackoverflow.com/questions/15594463
复制相似问题