Java Page分页显示

//entity层实体类

import java.util.List;

//分页展示
//相关属性:当前页,页大小(每页显示的条数),总页数,总条数,数据
//select * from t_user limit 3,3
public class Page {
    private Integer currentPage;  //当前页
    private Integer pageSize;     //页大小
    private Integer pageCount;   //页数量
    private Integer totalCount;  //总条数
    private List<?> list;        //数据
    private String  url;         //参数路径
    public Integer getCurrentPage() {
        return currentPage;
    }
    public void setCurrentPage(Integer currentPage) {
        this.currentPage = currentPage;
    }
    public Integer getPageSize() {
        return pageSize;
    }
    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }
    public Integer getPageCount() {
        return pageCount;
    }
    public void setPageCount(Integer pageCount) {
        this.pageCount = pageCount;
    }
    public Integer getTotalCount() {
        return totalCount;
    }
    public void setTotalCount(Integer totalCount) {
        this.totalCount = totalCount;
    }
    public List<?> getList() {
        return list;
    }
    public void setList(List<?> list) {
        this.list = list;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    
    @Override
    public String toString() {
        return "Page [currentPage=" + currentPage + ", pageSize=" + pageSize + ", pageCount=" + pageCount
                + ", totalCount=" + totalCount + ", list=" + list + ", url=" + url + "]";
    }
    
    public Page(Integer currentPage, Integer pageSize, Integer pageCount, Integer totalCount, List<?> list,
            String url) {
        this.currentPage = currentPage;
        this.pageSize = pageSize;
        this.pageCount = pageCount;
        this.totalCount = totalCount;
        this.list = list;
        this.url = url;
    }
    
    public Page() {
    }
    
    public Page(Integer currentPage, Integer pageSize) {
        this.currentPage = currentPage;
        this.pageSize = pageSize;
    }
}

 

// servlet层 (分页相关代码)
//-----直接做分页展示-----
String current = request.getParameter("currentPage"); // 获取前端传入的当前页
Page page = goodsInfoService.getPage(current); // 在业务层给page对象赋值
request.setAttribute("page", page);

 

//service层相关代码
public Page getPage(String current) {
    Integer currentPage = 1; // 默认为第一页
    Integer pageSize    = 5; // 每页显示5条记录
    if(current != null){
        currentPage = Integer.parseInt(current);
    }
    Page page = new Page(currentPage, pageSize);  //当前页和页大小的赋值
    
    Integer totalCount = goodsInfoDao.getTotalCount();
    page.setTotalCount(totalCount);  //设置总条数
    
   // 页数量==总条数/页大小--如果整除就是该值,否则+1
    Integer pageCount = totalCount/pageSize;
    pageCount=totalCount%pageSize==0?pageCount:pageCount+1;
    page.setPageCount(pageCount);   //设置页数量
    
    Integer startIndex = (currentPage-1)*pageSize; // 起始下标为(当前页-1)*页大小
    List<GoodsInfo> list = goodsInfoDao.getGoodsInfoListPage(startIndex, pageSize);
    page.setList(list);   //设置数据
    
    page.setUrl("GoodsInfoServlet?action=goodsInfoList");  //设置url
    
    return page;
}

 

//Dao相关分页代码
public int getTotalCount() { // 获取总记录数
    String sql="select count(1) from t_goods_info";
    return CommonUtils.getTotalCount(sql);
}

 

//jquery 相关分页代码
<a href="${page.url}&currentPage=1">首页</a>
    <c:if test="${page.currentPage!=1}">
        <a href="${page.url}&currentPage=${page.currentPage-1}">上一页</a>
    </c:if>
    <c:if test="${page.currentPage!=page.pageCount}">
        <a href="${page.url}&currentPage=${page.currentPage+1}">下一页</a>
    </c:if>
    <a href="${page.url}&currentPage=${page.pageCount}">尾页</a>
共${page.currentPage}/${page.pageCount}页

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,可以使用分页来查询数据库中的数据。以下是一个示例代码,使用了Spring Boot和MyBatis框架: 首先,创建一个DTO类,用于接收分页查询的参数: ```java public class PageRequestDTO { private int pageNum; // 当前页码 private int pageSize; // 每页显示的记录数 // 省略构造方法、getter和setter方法 } ``` 然后,在DAO层或Service层中,使用MyBatis进行数据库操作。创建一个Mapper接口,定义分页查询的方法: ```java public interface UserMapper { List<User> getUsersByPage(PageRequestDTO pageRequest); } ``` 在Mapper XML文件中编写对应的SQL语句,实现分页查询: ```xml <select id="getUsersByPage" parameterType="com.example.dto.PageRequestDTO" resultMap="userResultMap"> SELECT * FROM user LIMIT #{pageNum}, #{pageSize} </select> <resultMap id="userResultMap" type="com.example.entity.User"> <id property="id" column="id"/> <result property="name" column="name"/> <!-- 其他属性... --> </resultMap> ``` 最后,在Service层中调用Mapper的方法进行分页查询: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public List<User> getUsersByPage(int pageNum, int pageSize) { PageRequestDTO pageRequest = new PageRequestDTO(); pageRequest.setPageNum(pageNum); pageRequest.setPageSize(pageSize); return userMapper.getUsersByPage(pageRequest); } } ``` 以上代码是一个简单的示例,使用了Spring Boot和MyBatis框架来实现分页查询。实际开发中,还需要根据具体的业务需求进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值