java实现用户分页消息功能

java实现用户分页消息功能

package com.kero99.ygc.pojo;

import java.util.List;
//分页pojo 持久化类
public class PageData<E> {
        private int PageIndex; //页码
        private int ResultCount;//总记录数
        private int PageCount;//总页数
        private List<E> list;//分页数据
        public int getPageIndex() {
            return PageIndex;
        }
        public void setPageIndex(int pageIndex) {
            PageIndex = pageIndex;
        }
        public int getResultCount() {
            return ResultCount;
        }
        public void setResultCount(int resultCount) {
            ResultCount = resultCount;
        }
        public int getPageCount() {
            return PageCount;
        }
        public void setPageCount(int pageCount) {
            PageCount = pageCount;
        }
        public List<E> getList() {
            return list;
        }
        public void setList(List<E> list) {
            this.list = list;
        }


}

package com.kero99.ygc.pojo;

import com.kero99.ygc.entity.TbUsers;
import com.kero99.ygc.util.Data;
//继承pojo
public class MsgPageData extends PageData {
private TbUsers users; //用户

public int getPageSize(){
    return Data.MSG_SIZE;  //获取到的每页显示数  MSG_SIZE为常量10
}

public TbUsers getUsers() {
    return users;
}

public void setUsers(TbUsers users) {
    this.users = users;
}

}

package com.kero99.ygc.service.impl;

import java.util.List;

import com.kero99.ygc.dao.TbMsgDao;
import com.kero99.ygc.dao.impl.TbMsgDaoImpl;
import com.kero99.ygc.entity.TbMsg;
import com.kero99.ygc.entity.TbUsers;
import com.kero99.ygc.pojo.MsgPageData;
import com.kero99.ygc.service.TbMsgService;
import com.kero99.ygc.util.Data;

public class TbMsgServiceImpl implements TbMsgService {
    private TbMsgDao msgDao;
    public TbMsgServiceImpl() {
        msgDao=new TbMsgDaoImpl();
    }
    //分页算法实现用户消息分页  
    //pageCount总页数=总记录数 对 每页显示数 取余==0则总记录数对每页显示数取商 否则+1页
    public MsgPageData queryPage(MsgPageData pageData) {
        //1.已知
        TbUsers users=pageData.getUsers();
        int pageIndex=pageData.getPageIndex();
        int pageSize=Data.MSG_SIZE;
        //2.未知
       int resultCount=msgDao.findResultCount(users);
       int pageCount=(resultCount%pageSize==0)?resultCount/pageSize:(resultCount/pageSize+1);
       //改进版本 int pageCount=(int) Math.ceil(resultCount/Data.MSG_SIZE);
       List<TbMsg> list=msgDao.findInterzone(pageIndex,users);

       pageData.setList(list);
       pageData.setResultCount(resultCount);
       pageData.setPageCount(pageCount);
        return pageData;
    }

    public TbMsgDao getMsgDao() {
        return msgDao;
    }

    public void setMsgDao(TbMsgDao msgDao) {
        this.msgDao = msgDao;
    }

}
hibernate查询用户分页的信息
    public List<TbMsg> findInterzone(int pageIndex, TbUsers users) {
        session=BaseDao.getSession();
        String hql="from TbMsg where usersid=:uid order by bdate desc";
        Query query=session.createQuery(hql);
        query.setLong("uid", users.getId());
        query.setFirstResult((pageIndex-1)*Data.MSG_SIZE);
        query.setMaxResults(Data.MSG_SIZE);

        List<TbMsg> list=query.list();
        session.close();
        return list;
    }

    public int findResultCount(TbUsers users) {
        session=BaseDao.getSession();
        String hql="select count(*) from TbMsg where usersid=:uid";
        Query query=session.createQuery(hql);
        query.setLong("uid", users.getId());
        int count=Integer.parseInt(query.uniqueResult().toString());
        session.close();
        return count;
    }


package com.kero99.ygc.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.kero99.ygc.entity.TbUsers;
import com.kero99.ygc.pojo.MsgPageData;
import com.kero99.ygc.service.TbMsgService;
import com.kero99.ygc.service.TbUsersService;
import com.kero99.ygc.service.impl.TbMsgServiceImpl;
import com.kero99.ygc.service.impl.TbUsersServiceImpl;

public class TbMsgServlet extends BaseServlet {
    private TbUsers users;
    private TbMsgService msgService;
    public TbMsgServlet() {
        msgService=new TbMsgServiceImpl();
    }
    @Override
    public void init() throws ServletException {
        // TODO Auto-generated method stub
        super.init();
    }
    @Override
    public void destroy() {
        // TODO Auto-generated method stub
        super.destroy();
    }
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
         request.setCharacterEncoding("utf-8");
         String type=request.getParameter("type");
         if(type.equals("paging")){
             paging(request, response);
         }
    }
    public void paging(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
        HttpSession session=request.getSession();
        TbUsers users=(TbUsers) session.getAttribute("users");
        int pageIndex=1;
        try {
            pageIndex=Integer.parseInt(request.getParameter("pageIndex"));
        } catch (Exception e) {
            System.err.println("获取页码失败!默认访问首页");
        }
//  改进版本    int pageIndex = request.getParameter("pageIndex")==null?1:Integer.parseInt(request.getParameter("pageIndex"));
        MsgPageData pageData=new MsgPageData();
        pageData.setPageIndex(pageIndex);
        pageData.setUsers(users);
        pageData=msgService.queryPage(pageData);
        request.setAttribute("pageData", pageData);
        request.getRequestDispatcher("info.jsp").forward(request, response);

    }

    public TbUsers getUsers() {
        return users;
    }
    public void setUsers(TbUsers users) {
        this.users = users;
    }
    public TbMsgService getMsgService() {
        return msgService;
    }
    public void setMsgService(TbMsgService msgService) {
        this.msgService = msgService;
    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南归北隐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值