java写一个分页查询
时间: 2023-07-07 18:11:54 浏览: 108
java web手写实现分页功能
假设你使用的是Spring框架和MyBatis ORM框架,以下是一个简单的Java代码示例,用于实现分页查询:
```java
// 定义一个Page对象,用于封装分页信息
public class Page {
private int pageNum; // 当前页码
private int pageSize; // 每页记录数
// getter and setter methods
}
// 定义一个DAO接口,用于访问数据库
public interface UserDao {
List<User> findUsersByPage(int start, int pageSize); // 分页查询用户列表
int countUsers(); // 查询用户总数
}
// 实现DAO接口
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private SqlSession sqlSession;
@Override
public List<User> findUsersByPage(int start, int pageSize) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("start", start);
paramMap.put("pageSize", pageSize);
return sqlSession.selectList("user.findUsersByPage", paramMap);
}
@Override
public int countUsers() {
return sqlSession.selectOne("user.countUsers");
}
}
// 定义一个Service接口,用于处理业务逻辑
public interface UserService {
PageInfo<User> findUsersByPage(int pageNum, int pageSize); // 分页查询用户列表
}
// 实现Service接口
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public PageInfo<User> findUsersByPage(int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize); // 使用PageHelper进行分页
List<User> userList = userDao.findUsersByPage((pageNum - 1) * pageSize, pageSize);
PageInfo<User> pageInfo = new PageInfo<>(userList);
pageInfo.setTotal(userDao.countUsers()); // 设置总记录数
return pageInfo;
}
}
```
以上代码使用了MyBatis的Mapper映射方式进行SQL语句的执行和结果集的封装,同时使用了PageHelper进行分页操作,最终将分页信息封装在了PageInfo对象中返回给调用者。你可以根据自己的实际情况进行修改和优化。
阅读全文