java实现用户分页消息功能

来源:互联网 发布:asp聊天室源码 编辑:程序博客网 时间:2024/06/05 02:21

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;    }}
0 0
原创粉丝点击