я знаю, что это должно быть просто, и я, вероятно, смотрю прямо на проблему, но еще раз я застреваю, и нуждаются в помощи гуру кода.
Я пробую, также берут одну строку из столбца в jdbc и помещают их в массив.
я делаю это следующим образом:
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 является уже определенным методом, который делает то, что он, очевидно, делает. я создаю свой набор результатов, в то время как существует другой, я храню строку того столбца в массив. затем распечатайте его в придачу. также удостоверьтесь там.
проблема состоит в том что ее хранение всего столбца в contactListNames[1]
я хотел заставить его сохранить column1 строку 1 в [1]
затем строка столбца 1 2 в [2]
я знаю, что мог сделать это с циклом. но я не знаю, также берут только одну строку за один раз от отдельного столбца. какие-либо идеи?
p.s я прочитал API, я jsut наклон, видят что-либо, что соответствует.
Вы должны использовать ArrayList
, который предоставляет всю логику для автоматического расширения массива.
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()]);
Возможно, вы имели в виду что-то вроде:
int i = 0;
ResultSet rs = stmt.executeQuery("select name from users");
while (rs.next()) {
String name = rs.getString("name");
names[i++] = name;
}