XLSからjdbc sqlを使用してデータを取得しています。私のプログラムは以下の通りです。ArrayListが非常に奇妙に動作する
ケース1:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
c = DriverManager.getConnection("jdbc:odbc:Excel Files", "", "");
stmnt = c.createStatement();
String query = "select * from [Proficiency$];";
ResultSet rs = stmnt.executeQuery(query);
baseColumnList = new ArrayList();
while(rs.next()) {
//baseColumnList.add(rs.getString(1));
System.out.println(rs.getString(1));
//System.out.println(baseColumnList);
}
出力:
Aadmin
Badmin
Badminimage
batch
Cadmin
Dadmin
Eadmin
rulesengine
Fadmin
genadmin
Gadmin
Hdomain-EU
Padmin
IAA
ケース2:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
c = DriverManager.getConnection("jdbc:odbc:Excel Files", "", "");
stmnt = c.createStatement();
String query = "select * from [Proficiency$];";
ResultSet rs = stmnt.executeQuery(query);
baseColumnList = new ArrayList();
while(rs.next()) {
baseColumnList.add(rs.getString(1));
System.out.println(baseColumnList);
}
出力:
[Aadmin]
[Aadmin, Badmin]
[Aadmin, Badmin, Badminimage]
[Aadmin, Badmin, Badminimage, batch]
[Aadmin, Badmin, Badminimage, batch, Cadmin]
[Aadmin, Badmin, Badminimage, batch, Cadmin, Dadmin]
[Aadmin, Badmin, Badminimage, batch, Cadmin, Dadmin, Eadmin]
[Aadmin, Badmin, Badminimage, batch, Cadmin, Dadmin, Eadmin, rulesengine]
[Aadmin, Badmin, Badminimage, batch, Cadmin, Dadmin, Eadmin, rulesengine, Fadmin]
[Aadmin, Badmin, Badminimage, batch, Cadmin, Dadmin, Eadmin, rulesengine, Fadmin, genadmin]
[Aadmin, Badmin, Badminimage, batch, Cadmin, Dadmin, Eadmin, rulesengine, Fadmin, genadmin, Gadmin]
[Aadmin, Badmin, Badminimage, batch, Cadmin, Dadmin, Eadmin, rulesengine, Fadmin, genadmin, Gadmin, Hadmin-EU]
[Aadmin, Badmin, Badminimage, batch, Cadmin, Dadmin, Eadmin, rulesengine, Fadmin, genadmin, Gadmin, Hadmin-EU, Padmin]
[Aadmin, Badmin, Badminimage, batch, Cadmin, Dadmin, Eadmin, rulesengine, Fadmin, genadmin, Gadmin, Hadmin-EU, Padmin, IAA]
なぜarraylistが奇妙に行動しているのか誰にも説明できます。
更新:期待される結果が最初に出力されます。
期待どおりの結果が得られますか?表示される結果があなたのコードから期待されるように見えるので、私はエラーを見ることができません。 – Stmated
はい、あなたが言及している奇妙さは何ですか?ケース1:rs.getString(1)を印刷するだけです。ケース2では、rs.getString(1)をbaseColumnListに追加し、各繰り返しでarrayListのすべての要素を出力します。 – namalfernandolk
arraylistから印刷するときに最初の出力として結果が必要 – developer