Я работаю над Java-программой с базой данных sql, которая является покемоном. У меня проблемы с помещением строки базы данных в массив. Вот часть моего кода, которая вызывает проблему.
String query2 = "SELECT * " +
"FROM Pokedex.typea, Pokedex.Pokemon where Pokemon.ID = " + pk +
" AND type1 = type_name";
java.sql.Statement st2 = con.createStatement();
ResultSet rs2 = st2.executeQuery(query2);
int i = 2
while(rs2.next() && i<19) {
weaka[i-2] = rs2.getInt(i);
System.out.println(weaka[i-2]);
i++;
}
и вот строка, которую возвращает query2 (я проверял это с помощью MySQL Workbench):
Fire 1 0 0 0 1 0 1 0 0 1 -1 1 0 0 0 -1 1 -1 4 Charmander 39 52 43 60 50 65 309 Fire null Blaze null Solar Power NULL
Я надеялся, что этот код поместит значения из столбцов со 2 по 18 в массив «слабый», но все, что делает код, это постоянно делает
weaka[i-2] = rs2.getInt(i);
System.out.println(weaka[i-2]);
но оно никогда не увеличивает i, никогда не читает содержимое любого другого столбца и никогда не заканчивается. Программа просто печатает «1» пару сотен раз, а затем вылетает. Почему я не повторяюсь?
Может ли кто-нибудь помочь мне выяснить, как заставить мой код идти по строке и читать содержимое столбца со 2 по 18 в массив? Спасибо
РЕДАКТИРОВАТЬ: Спасибо за оба ответа. Они оба работали, чтобы получить массив, читающий строку, но процесс все еще продолжается дольше, чем следовало бы с обоими ответами. как будто он читает строку несколько раз. Код, который я вам дал, не был в цикле, так почему он читает строку несколько раз?
также Pokemon.ID является первичным ключом моей схемы, поэтому запрос вернет только одну строку.