#java
#java
Вопрос:
private void next_contactActionPerformed(java.awt.event.ActionEvent evt) {
String name, lName, add, em, cell = null;
try {
String Url = "Jdbc:Odbc:DirDSN";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(Url,"sa","mysql");
//Statement st = con.createStatement();
String sql = "SELECT * FROM PersonInformation";
PreparedStatement pstmt = con.prepareStatement(sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs = pstmt.executeQuery();
if(rs.next()) {
name = rs.getString("First_Name");
lName = rs.getString("Last_Name");
add = rs.getString ("Address");
em = rs.getString("Email_Id");
cell = rs.getString("cell#");
jTextField2.setText(name);
jTextField3.setText(lName);
jTextField4.setText(add);
jTextField5.setText(em);
jTextField10.setText(cell);
}
con.close();
} catch(Exception sqlEx) {
System.out.println(sqlEx);
} finally {
}
}
Я написал эту следующую функцию для кнопки next. Я хочу, чтобы при нажатии кнопки далее rs.Next()
возвращалась новая запись таблицы на экране. Теперь я сталкиваюсь с проблемой, что каждый раз, когда я нажимаю кнопку «Далее», я получаю первую строку таблицы. Я также использовал while (rs.Next())
, но она возвращает мне последнюю строку таблицы каждый раз, когда я нажимаю кнопку далее. Пожалуйста, скажите мне, как я могу написать эту функцию так, чтобы каждый раз, когда я вызываю эту функцию, она возвращала новую запись из таблицы.
Комментарии:
1. Исправьте табуляцию и интервал, прежде чем публиковать здесь, пожалуйста.
2. Пожалуйста, начинайте предложения с заглавных букв. Функции «возвращают» результаты, они не «возвращают вам» результаты. Заставьте нас захотеть прочитать ваш вопрос!
Ответ №1:
Измените ResultSet rs
на переменную-член или сохраните позицию, в которой вы находитесь, и используйте ее в качестве параметра для метода (см. LIMIT).
На данный момент вы создаете новый результирующий набор с каждым щелчком мыши, всегда начиная с индекса 0.
Комментарии:
1. @ s3b я новичок в Java, пожалуйста, предоставьте мне какой-нибудь код, связанный с этим. которая говорит мне, как я сохраняю позицию, в которой я нахожусь.
2. Просто создайте частный элемент результирующего набора, который сохраняет позицию для вас.
3. Вы знаете, что такое переменная-член , верно? Измените вашу локальную переменную «rs» на переменную-член. Создайте дополнительный метод для вашего подключения. Единственным кодом, который должен быть в вашем методе actionPerformed, должен быть блок if (rs.next()). Я не буду кодировать это для вас, вы должны сделать это сами.
4. @s3 я сделал это, определив дополнительный метод, и я вызвал этот метод в конструкторе, теперь он работает нормально