MySQLデータベースからデータを取得するためにJavaでアプリケーションを構築しています。クエリを実行した後、ResultSet を取得し、次の手順を実行してレコードを抽出します。
while (rs.next())
{
for (int column = 1; column <= rm.getColumnCount(); column++) {
row.add(rs.getObject(column));
}
result.add(row.toString());
row.clear();
}
ここで、rs = ResultSet およびrm = ResultSetMetaData
問題は、result.add(row.toString());を実行する必要があることです。ただのresult.add(row);ではなく (これを使用して、2 次元の ArrayList を作成したいと思います)。そうしないと、空の結果が得られます。
row.clear();を入れてみました。最初のforループの前ですが、その結果、すべての結果が最後のレコードの複数のインスタンスで埋められます。行が最後のレコードと等しい最後まで結果に追加されなかったのと同じように。別のArrayListに要素として追加する前に、ArrayList行を「コミット」する必要がありますか? もしそうなら、どのように?また、好奇心から、.toString()の動作が異なるのはなぜですか?