1
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は最初の行のみを保持し、2番目の要素は両方の行を保持する必要があると思います。

しかし、そうではないようです。

4

2 に答える 2

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);
}
于 2013-03-24T02:25:01.267 に答える
1

同じベクターにデータをロードし続けることはできません。すべての行にベクターを作成する必要があります。

//Vector vect = new Vector();
Vector vect_container = new Vector();
  for(int i=0;i<2;i++){
        rs.next();
        Vector vect = new Vector();
于 2013-03-24T02:25:08.427 に答える