您的位置:首页 > 编程语言 > Java开发

java实现用户分页消息功能

2017-04-24 16:29 381 查看
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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: