Java分页查询代码实现
时间: 2024-02-23 13:30:54 浏览: 24
以下是Java中使用MyBatis进行分页查询的示例代码:
```
public List<User> getUserList(int pageNum, int pageSize) {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
int offset = (pageNum - 1) * pageSize;
RowBounds rowBounds = new RowBounds(offset, pageSize);
List<User> userList = sqlSession.selectList("getUserList", null, rowBounds);
return userList;
} finally {
sqlSession.close();
}
}
```
其中,`pageNum`表示当前页码,`pageSize`表示每页显示的数据条数。`offset`表示查询的起始位置,`rowBounds`表示查询的范围。
这里使用了`RowBounds`来实现分页查询,它是MyBatis中的一个类,可以指定查询的起始位置和查询的数据条数。
以上代码中的`getUserList`是一个MyBatis的映射文件中的查询语句,可以根据具体的业务需求进行编写。
相关问题
java分页查询代码实现
Java分页查询可以通过使用MyBatis的分页插件PageHelper来实现。具体步骤如下:
1. 在pom.xml文件中添加PageHelper的依赖:
```
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
```
2. 在MyBatis的配置文件中配置PageHelper插件:
```
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
```
3. 在Java代码中使用PageHelper进行分页查询:
```
// 设置分页参数,pageNum表示第几页,pageSize表示每页的大小
PageHelper.startPage(pageNum, pageSize);
// 执行查询操作
List<User> userList = userDao.selectUserList();
// 获取分页信息
PageInfo<User> pageInfo = new PageInfo<>(userList);
// 获取总记录数
long total = pageInfo.getTotal();
// 获取当前页的数据列表
List<User> currentPageList = pageInfo.getList();
```
java分页代码实现
以下是一个简单的Java分页代码实现:
```java
public class Pagination {
private int currentPage;
private int totalPages;
private int pageSize;
private List<?> data;
public Pagination(List<?> data, int currentPage, int pageSize) {
this.data = data;
this.currentPage = currentPage;
this.pageSize = pageSize;
this.totalPages = (int) Math.ceil((double) data.size() / pageSize);
}
public List<?> getCurrentPageData() {
int start = (currentPage - 1) * pageSize;
int end = Math.min(data.size(), start + pageSize);
return data.subList(start, end);
}
public int getCurrentPage() {
return currentPage;
}
public int getTotalPages() {
return totalPages;
}
public int getPageSize() {
return pageSize;
}
}
```
使用示例:
```java
List<String> data = new ArrayList<>();
data.add("A");
data.add("B");
data.add("C");
data.add("D");
data.add("E");
Pagination pagination = new Pagination(data, 2, 2);
List<String> currentPageData = pagination.getCurrentPageData(); // 返回 ["C", "D"]
int totalPages = pagination.getTotalPages(); // 返回 3
int pageSize = pagination.getPageSize(); // 返回 2
```
在上面的示例中,我们创建了一个包含5个字符串的列表,并将其作为数据传递给Pagination类的构造函数。我们还指定了当前页(第2页)和每页的大小(每页2个元素)。然后,我们可以使用getCurrentPageData()方法来获取当前页的数据,使用getTotalPages()方法来获取总页数,使用getPageSize()方法来获取每页大小。