I am retrieving data from XLS sheet using jdbc sql. Below is my program.
Case 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);
}
output :
Aadmin
Badmin
Badminimage
batch
Cadmin
Dadmin
Eadmin
rulesengine
Fadmin
genadmin
Gadmin
Hdomain-EU
Padmin
IAA
Case 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);
}
Output :
[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]
Please can anyone explain why arraylist is behaving strangly.
Update : Expected result is first output.
This
prints the actual content1 of the list. The result is not strange at all. The list get’s bigger on each iteration.
To repeat the output of your first example:
But that’s nonsense. The following snippet is more elegant:
1 Actually
baseColumnList.toString()is called.