2列の結果セットを配列のarraListに変換しようとしています。私のコードをチェックするために、私はそれを印刷します。その目的のために、私は2列5列の弱い表を作った。resultSetをarrayListに変換して出力する
問題は、私のテストプリントが元のテーブルの5倍のプリントアウトをしているということです。だから私は混乱している。 resultSetを間違って変換しているのですか、それとも印刷しませんか?誰かが助けてくれましたか?
コード:
public static void partner() {
ArrayList <int[]> result = new ArrayList<int[]>();
String select = "SELECT ID, age FROM individuen WHERE age BETWEEN 20 AND 40 " +
"AND Familienstand IS 2 ORDER BY RANDOM() LIMIT 5";
DBController dbc = DBController.getInstance();
dbc.initDBConnection();
try {
Statement stmt = DBController.connection.createStatement();
ResultSet rs = stmt.executeQuery(select);
int columnCount = rs.getMetaData().getColumnCount();
while(rs.next()){
int[] row = new int[columnCount];
for (int i = 0; i < columnCount ; i++){
row[i] = rs.getInt(i + 1);
}
result.add(row);
}
Iterator<int[]> it = result.iterator();
while (it.hasNext()) {
for (int[] arr : result) {
System.out.println(Arrays.toString(arr));
}
it.next();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
なぜあなたはit.next()を使用していますか? –
arrayListの次の要素を取得するために使用する必要はありませんか? – UsefulUserName
2回あなたの結果をトラバースしている場合、it.hasNext()はより多くの値を含んでいればtrueを返します。 –