#java #mysql #arraylist #next #listiterator
#java #mysql #список массивов #Далее #listiterator
Вопрос:
Мне нужно отображать строки моей базы данных MySQL одну за другой, используя кнопку next в java. Но мне трудно это сделать.
Ниже приведены мои текущие коды. Я знаю, что Arraylist и ListIterator должны быть разделены, но я не знаю, куда их поместить, потому что они также нужны мне в моем результирующем наборе.
JButton btnSubmit = new JButton("Next");
btnSubmit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try{
Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/anonymization", "root", "password");
Statement statement = connect.createStatement();
String examNames = textExamName.getText();
int examNumber = Integer.parseInt(textNumber.getText());
String selectTable = "Select number, content, choiceA, choiceB, choiceC, choiceD, correctans, * FROM " examNames "";
ResultSet examresults = statement.executeQuery("Select * FROM " examNames "");
while(examresults.next()){
ArrayList numbers = new ArrayList();
ArrayList contents = new ArrayList();
ArrayList A = new ArrayList();
ArrayList B = new ArrayList();
ArrayList C = new ArrayList();
ArrayList D = new ArrayList();
ArrayList ans = new ArrayList();
ListIterator numberIterator = numbers.listIterator();
ListIterator contentIterator = contents.listIterator();
ListIterator AIterator = A.listIterator();
ListIterator BIterator = B.listIterator();
ListIterator CIterator = C.listIterator();
ListIterator DIterator = D.listIterator();
numbers.add(examresults.getInt("number"));
contents.add(examresults.getString("content"));
A.add(examresults.getString("choiceA"));
B.add(examresults.getString("choiceB"));
C.add(examresults.getString("choiceC"));
D.add(examresults.getString("choiceD"));
ans.add(examresults.getString("correctans"));
if (numberIterator.hasNext() amp;amp; contentIterator.hasNext() amp;amp; AIterator.hasNext() amp;amp; BIterator.hasNext()
amp;amp; CIterator.hasNext() amp;amp; DIterator.hasNext()) {
textAreaQuestion.setText(contentIterator.next().toString());
}
}
Комментарии:
1. Вы намерены запускать SQL-запрос при каждом нажатии кнопки или планируете реализовать какую-то разбивку на страницы?
2. Возможно, SQL-запрос может выполняться только один раз. Моя основная цель — отобразить столбцы моей базы данных в моих текстовых полях и перейти к следующей строке с помощью кнопки next.
3. Если ваш результирующий набор относительно невелик, то вам следует выполнять запрос где-то в другом месте. Просто выполните итерацию по коллекциям в приведенном выше методе.
4. Не могли бы вы сделать код руководства для меня, чтобы следовать?