2015-04-22 1 views
0

У меня есть массив, который был создан из ArrayList, который, в свою очередь, был создан из ResultSet. Этот массив содержит строки таблицы базы данных, и каждая строка (с несколькими столбцами на основе моего запроса) существует как один элемент в массиве. Все идет нормально. Моя проблема заключается в том, как получить отдельные значения (столбцы) из каждой строки, которые, как я сказал ранее, теперь существуют как элемент. Я могу получить каждый элемент (строка, конечно), но это не то, что я хочу. Каждый элемент представляет собой совокупность нескольких значений и как их получить? Я новичок и действительно застрял здесь. Я думаю, что все это имеет смысл. Вот код, как я создал массив.Получить отдельные значения из массива, созданного из набора результатов в java

List resultsetRowValues = new ArrayList();  
while (resultSet.next()){ 
    for (int i = 1; i <= columnCount; i++) { 
     resultsetRowValues.add(resultSet.getString(i)); 
    } 
} 

String[] databaseRows = (String[]) resultsetRowValues.toArray(new String[resultsetRowValues.size()]); 

EDIT: Больше объяснения Мой запрос MySQL выглядит следующим образом:

String query = "SELECT FIRSTNAME, LASTNAME, ADDRESS FROM SOMETABLE WHERE CITY='SOMECITY'"; 

Это возвращает несколько строк в ResultSet. И в соответствии с образцом запроса каждый элемент массива будет котировать три значения (столбцы), то есть FIRSTNAME, LASTNAME и ADDRESS. Но эти три значения существуют в массиве как один элемент. Хотя я хочу, чтобы каждый столбец отдельно от каждого элемента (который фактически является строкой таблицы базы данных). Когда я итерация по aarray используя для цикла и печати значений в консоль, я получаю результат, похожий на следующее:

Doe 
Jhon 
Some Street (End of First element) 
Smith 
Jhon 
Some Apartment (End of Second element and so on) 

Как видно из вывода, каждый элемент содержит три значения, которые напечатаны на отдельных линиях. Как получить эти индивидуальные значения.

+0

нужно больше ясности, ЭГ было бы весьма признателен –

+0

Промежуточный «Список» не имеет смысла, вы получаете строку line1-row1 ... line1-rowX, за которой следует строка2-строка1 ... строка2-rowX, и это проблема. –

+0

@Saurabh Jhunjhunwala Я предоставил более подробную информацию. – freshbio

ответ

0

Вы, вероятно, хотите что-то вроде этого:

List<Map<String, String>> data = new ArrayList<>();  
while (resultSet.next()){ 
    Map<String, String> map = new HashMap<>(); 
    for (int i = 1; i <= columnCount; i++) { 
     map.put("column" + i, resultSet.getString(i)); 
    } 
    data.add(map) 
} 

// usage: data.get(2).get("column12") returns line 3/column 12 

Обратите внимание, что возможны и другие варианты (2D-массив, guava Table, ...)

+0

Спасибо за ответ, но что такое '' row ''? – freshbio

+0

Отредактировано для исправления этого, извините –