java db2 分页查询
时间: 2023-07-06 20:33:09 浏览: 110
数据库分页查询
在 Java 中使用 DB2 数据库进行分页查询可以使用以下代码:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DB2Pagination {
private static final String DB_DRIVER = "com.ibm.db2.jcc.DB2Driver";
private static final String DB_CONNECTION = "jdbc:db2://localhost:50000/mydatabase";
private static final String DB_USER = "username";
private static final String DB_PASSWORD = "password";
public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
int pageNumber = 1;
int pageSize = 10;
try {
Class.forName(DB_DRIVER);
connection = DriverManager.getConnection(DB_CONNECTION, DB_USER, DB_PASSWORD);
String query = "SELECT * FROM mytable ORDER BY id OFFSET ? ROWS FETCH FIRST ? ROWS ONLY";
preparedStatement = connection.prepareStatement(query);
preparedStatement.setInt(1, (pageNumber - 1) * pageSize);
preparedStatement.setInt(2, pageSize);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
// process the result set
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
try {
if (resultSet != null) {
resultSet.close();
}
if (preparedStatement != null) {
preparedStatement.close();
}
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
在这个示例中,我们使用 `OFFSET` 和 `FETCH FIRST` 子句来实现分页查询。`OFFSET` 子句指定开始返回结果的行数,`FETCH FIRST` 子句指定要返回的行数。
在代码中,我们使用 `PreparedStatement` 对象来执行带有参数的 SQL 查询,然后通过 `setInt` 方法设置参数的值。最后,我们使用 `executeQuery` 方法执行查询,并通过 `ResultSet` 对象处理查询结果。
需要注意的是,`OFFSET` 和 `FETCH FIRST` 子句只在 DB2 9.7 或更高版本中可用。如果您的 DB2 版本较旧,则需要使用不同的分页查询语法。
阅读全文