У меня есть запрос, который будет возвращать два значения (столбец A и столбец B), как показано ниже
A B
------------
a aaa
a aaa
a aaa
a aaa
b bbb
c ccc
c ccc
b bbb
c ccc
b bbb
Я пытаюсь создать метод Java (Java 7), который будет получать все эти значения за один рази сохранить его в переменной коллекции (Map), как и все значения в следующем формате:
(a -> (aaa,aaa,aaa,aaa,aaa),
b -> (bbb,bbb,bbb),
c -> (ccc,ccc,ccc))
Ниже приведен метод, который я пытаюсь, но я даже не могу получить все данные в первую очередь:
import java.sql.*;
import java.util.ArrayList;
public class CollectionFrame {
public static void main(String[] args) {
try {
// step1 load the driver class
Class.forName("oracle.jdbc.driver.OracleDriver");
// step2 create the connection object
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "hr", "hr");
// step3 create the statement object
Statement stmt = con.createStatement();
// step4 execute query
// Lists of Lists to store the values
ArrayList<ArrayList<String>> listOLists = new ArrayList<ArrayList<String>>();
ArrayList<String> obj = new ArrayList<String>();
ResultSet rs = stmt.executeQuery("select * from t");
while (rs.next()) {
// System.out.println(rs.getString(1) + " " + rs.getString(2));
obj.add(rs.getString(1));
// obj.add(rs.getString(2));
listOLists.add(obj);
obj.removeAll(obj);
}
// step5 close the connection object
con.close();
System.out.println(listOLists.toString());
} catch (Exception e) {
System.out.println(e);
}
}
}
приведенный выше код дает следующий результат
[[a, a, a, a, b, c, c, b, c, b], [a, a, a, a, b, c, c, b, c, b], [a, a, a, a, b, c, c, b, c, b], [a, a, a, a, b, c, c, b, c, b], [a, a, a, a, b, c, c, b, c, b], [a, a, a, a, b, c, c, b, c, b], [a, a, a, a, b, c, c, b, c, b], [a, a, a, a, b, c, c, b, c, b], [a, a, a, a, b, c, c, b, c, b], [a, a, a, a, b, c, c, b, c, b]]
Если я раскомментирую строку obj.removeAll(obj);
, я получу следующее:
[[], [], [], [], [], [], [], [], [], []]
Язастрял здесь.Может ли кто-нибудь помочь мне, как действовать или предложить лучшее решение?