Almacenamiento del set de resultados en una matriz

Sé que esto debería ser simple y estoy probablemente mirando directamente al problema, pero una vez más estoy atrapado y necesito la ayuda de los gurús del código.

También lo bash tomar una fila de una columna en jdbc, y ponerlos en una matriz.

hago esto de la siguiente manera:

public void fillContactList() { createConnection(); try { Statement stmt = conn.createStatement(); ResultSet namesList = stmt.executeQuery("SELECT name FROM Users"); try { while (namesList.next()) { contactListNames[1] = namesList.getString(1); System.out.println("" + contactListNames[1]); } } catch(SQLException q) { } conn.commit(); stmt.close(); conn.close(); } catch(SQLException e) { } 

creatConnection es un método ya definido que hace lo que obviamente hace. Creo mi set de resultados mientras que hay otro, guardo la cadena de esa columna en una matriz. luego imprímalo por si acaso. también asegúrate de que esté allí.

el problema es que está almacenando toda la columna en contactListNames [1]

Quería hacerlo almacenar column1 fila 1 en [1]

luego columna 1 fila 2 en [2]

Sé que podría hacer esto con un bucle. pero tampoco sé tomar solo una fila a la vez de una sola columna. ¿algunas ideas?

Si he leído la API, no puedo ver nada que encaje.

Debería usar una ArrayList que proporciona toda la lógica para extender automáticamente la matriz.

 List rowValues = new ArrayList(); while (namesList.next()) { rowValues.add(namesList.getString(1)); } // You can then put this back into an array if necessary contactListNames = (String[]) rowValues.toArray(new String[rowValues.size()]); 

¿Quiso decir algo como:

 int i = 0; ResultSet rs = stmt.executeQuery("select name from users"); while (rs.next()) { String name = rs.getString("name"); names[i++] = name; }