2014-02-03 1 views
0

Я новичок в JAVA, так что любезно поймите мой вопрос и, пожалуйста, дайте свой ценный и точный ответ.ResultSet Данные каждого хранилища строк в другом индексе массива

Как сохранить данные результатов в массиве anohter? Должен ли я использовать ArrayList и т. Д. Мой код, например,

Statement stmt = null; 
ResultSet query_rs; 
String query = "SELECT * FROM my_table"; 
query_rs = stmt.executeQuery(query); 
int counter_rs = 0; 
ArrayList my_arr = new ArrayList(); 
while(query_rs.next()) 
{ 
    //here I want to add one row data in array index 
    counter_rs++; 
    my_arr[counter_rs] = query_rs; //Store row data in particular array index 
} 

System.out.println(my_arr.toString()); //Show all data 

P.S. Моя главная линия - my_arr[counter_rs] = query_rs;. Заранее спасибо

+0

«любезно понять мой вопрос» - не вопрос. – Maroun

+0

Это действительно непонятно, какова ваша проблема. В настоящее время работает ваш код? Если нет, какая ошибка? Если да, то в чем вопрос в точности? –

+0

Почему бы вам не получить NPE здесь 'query_rs = stmt.executeQuery (query);'? – PopoFibo

ответ

2

my_arr является ArrayList, если вы хотите добавить какой-либо элемент my_arr.add(anyElement) или если вы хотите установить какой-либо элемент в частности, использование местоположения этого set(int index, E element)

my_arr.set(0,anyElement); 


Statement stmt = null; 
ResultSet query_rs; 
String query = "SELECT * FROM my_table"; 
query_rs = stmt.executeQuery(query); 
int counter_rs = 0; 
ArrayList my_arr = new ArrayList(); 
while(query_rs.next()) 
{ 
    //here I want to add one row data in array index  
    my_arr.set(counter_rs,query_rs); //use this 
    // or 
    // my_arr.add(query_rs); 
    counter_rs++; 

} 

//System.out.println(my_arr.toString()); //Show all data 
// use for loop to get all data 
+0

Как я могу показать или распечатать то, что имеет my_arr? Если я использую этот System.out.println (my_arr); ... Он показывает «[[email protected], [email protected]». У вас есть другой вариант? –

+0

вы можете получить значения по циклу while, это очень простой пример [щелкните здесь] (http://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html) 'rs.getString (1); 'где' getString'is метод, который получает столбец String из базы данных и '1' (который является параметром) является позицией столбца, предположим, что ваша БД имеет 2 столбца с именем' id' и 'name', тогда мы будем использовать' rs.getString (1) ; 'и' rs.getString (2); '' 1' = 'id' и' 2' = 'name' вы также можете передать имя фактического имени столбца в БД, например so' rs.getInt («id»); и rs.getString ("name"); –

1

my_arr является ArrayList не массив

ArrayList my_arr = new ArrayList(); 

использование my_arr.add() не как my_arr[counter_rs] = query_rs;

+1

Приятно упомянуть что-то о стирании типа *. – Maroun

+0

Когда я печатаю это. Он отображается как «[[Ljava.lang.Object; @ 50cedf4e, [Ljava.lang.Object; @ 3da6a354, [Ljava.lang.Object; @ 72cff6b, [Ljava.lang» –

+0

@GoogleUser не делает его toString просто используйте System.out.println (my_arr); – Nambi

1

Если я правильно понял ваш вопрос, то я думаю, что вам нужно сделать следующее:

сначала объявить массивList с типом RowType, например>

ArrayList<DataRow> my_arr = new ArrayList<DataRow>(); // DataRow should hold the columns data. 

Во-вторых: добавьте каждую строку в список.

while(query_rs.next()) 
{ 
    DataRow row = // fill the row from the ResultSet 
    my_arr.add(row); 
} 

третья: проведите цикл над списком и распечатайте данные;

Смежные вопросы