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
中的第一个元素应该只保留第一行,第二个元素应该保持两行,依此类推。
但情况似乎并非如此。
答案 0 :(得分:1)
您继续将Vector
添加到vect_container
。您需要在每个循环迭代中添加一个新的。
移动此行:
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);
}
答案 1 :(得分:1)
您无法将数据加载到同一个Vector中。您需要为每一行创建一个Vector:
//Vector vect = new Vector();
Vector vect_container = new Vector();
for(int i=0;i<2;i++){
rs.next();
Vector vect = new Vector();