Java如何在可滚动结果集中移动光标?
package org.nhooo.example.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class ScrollableMoveExample { private static final String URL = "jdbc:mysql://localhost/nhooo"; private static final String USERNAME = "root"; private static final String PASSWORD = ""; public static void main(String[] args) { try (Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD)) { //在此示例中,我们首先创建一个语句,该语句允许我们 //在结果集对象中来回移动。首先,我们将 //从头到尾迭代结果。 Statement statement = connection.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); String sql = "SELECT id, code, name, price FROM products"; ResultSet resultSet = statement.executeQuery(sql); while (resultSet.next()) { print(resultSet); } System.out.println(); //现在,结果集指针放置在最后一条记录之后。 //使用结果集的先前方法,我们现在可以移动 //向后指向结果集开头的指针。 while (resultSet.previous()) { print(resultSet); } } catch (SQLException e) { e.printStackTrace(); } } private static void print(ResultSet resultSet) throws SQLException { long id = resultSet.getLong("id"); String code = resultSet.getString("code"); String name = resultSet.getString("name"); double price = resultSet.getDouble("price"); System.out.println(id + "\t" + code + "\t" + name + "\t" + price); } }
这是我们程序的一些结果。
1 P0000001 Java 2 Notebook 25.0 2 P0000002 Java Servlet Programming 30.0 3 P0000003 PHP Programming 20.0 4 P0000004 Longman Active Study Dictionary 40.0 5 P0000005 Ruby on Rails 24.0 5 P0000005 Ruby on Rails 24.0 4 P0000004 Longman Active Study Dictionary 40.0 3 P0000003 PHP Programming 20.0 2 P0000002 Java Servlet Programming 30.0 1 P0000001 Java 2 Notebook 25.0
Maven依赖
<!-- https://search.maven.org/remotecontent?filepath=mysql/mysql-connector-java/8.0.17/mysql-connector-java-8.0.17.jar --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.17</version> </dependency>