登陆注册+分页查询(hibernate+struts2)

PageUtil.java

package Util;

public class Page {
	// 总页数
	private int totalPageCount = 1;
	// 每页显示记录数
	private int pageSize = 0;
	// 总条数
	private int recordCount = 0;
	// 当前页号
	private int currPageNo = 1;

	public int getTotalPageCount() {
		return totalPageCount;
	}

	public void setTotalPageCount(int totalPageCount) {
		this.totalPageCount = totalPageCount;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		if (pageSize > 0) {
			this.pageSize = pageSize;
		}
	}

	public int getRecordCount() {
		return recordCount;
	}

	public void setRecordCount(int recordCount) {
		if(recordCount>0){
		this.recordCount = recordCount;
		this.setTotalPageCountByRs();
		}
	}

	public int getCurrPageNo() {
		if (totalPageCount == 0) {
			return 0;
		}
		return currPageNo;
	}

	public void setCurrPageNo(int currPageNo) {
		if (totalPageCount > 0) {
			this.currPageNo = currPageNo;
		}
	}

	//设置总页数
	private void setTotalPageCountByRs(){
		if(this.recordCount%this.pageSize==0){
			this.totalPageCount=this.recordCount/this.pageSize;
		}else if(this.recordCount%this.pageSize>0){
			this.totalPageCount=this.recordCount/this.pageSize+1;
		}else{
			this.totalPageCount=0;
		}
	}
	//得到开始记录数
	public int getStartRow(){
		return (currPageNo-1)*pageSize;
	}
	//得到结束记录数
	public int getEndRow(){
		return pageSize;
	}
}

pageDao.java

package Dao;

import java.util.List;

import UserBean.User;

public interface PageDao {
	int getTotalCount();
	
	List<User> showByPage(int PageNo,int pageSize);
}


PageDaoImpl.java

package DaoImpl;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import UserBean.User;
import Util.Page;
import Dao.PageDao;
import HibernateUtil.HibernateUtil;

public class PageDaoImpl implements PageDao{

	@Override
	public int getTotalCount() {
		long totalcount=0;
		Session session=HibernateUtil.getSession();
		Transaction tx=session.beginTransaction();
		Query query=session.createQuery("select count(*) from User");
		totalcount= (Long) query.uniqueResult();
		tx.commit();
		return (int) totalcount;
	}
	@Override
	public List<User> showByPage(int PageNo, int pageSize) {
		Session session=HibernateUtil.getSession();
		Transaction tx=session.beginTransaction();
		Query query=session.createQuery("from User");
		
		Page page=new Page();
		page.setCurrPageNo(PageNo);//设置当前页码
		page.setPageSize(pageSize);//设置总页数
		//计算sql语句的起始记录以及结束记录的行数
		int startRow=page.getStartRow();
		int endRow=page.getEndRow();
		
		query.setFirstResult(startRow);
		query.setMaxResults(endRow);
		
		List<User> list=query.list();
		tx.commit();
		return list;
	}

	public static void main(String[] args) {
		System.out.println(new PageDaoImpl().getTotalCount());
		PageDaoImpl pd=new PageDaoImpl();
		List<User> list=pd.showByPage(1, 2);
		for (User user : list) {
			System.out.println(user.getId()+user.getUserName()+user.getPassWord());
		}
	}
}

jsp页面

<%
				service service = new serviceImpl();
				//获取当前页码
				String currntPage = request.getParameter("pageIndex");
				if (currntPage == null) {
					currntPage = "1";
				}
				int pageIndex = Integer.parseInt(currntPage);
				//获取总条数
				int totalCount = service.getTotalCount();
				//获取每页显示记录数
				int pageSize = 2;
				//获取总页数
				Page pages = new Page();
				pages.setCurrPageNo(pageIndex);
				pages.setPageSize(pageSize);
				pages.setRecordCount(totalCount);
				int totalPage = pages.getTotalPageCount();

				if (pageIndex < 1) {
					pageIndex = 1;
				} else if (pageIndex > totalPage) {
					pageIndex = totalPage;
				}
				//每页显示用户列表
				List<User> list = service.showByPage(pageIndex, pageSize);
			%>
			<tbody>
				<%
					int i = 0;
					for (User user : list) {
						i++;
				%>
				<tr>
					<td><%=user.getId()%></td>
					<td><%=user.getUserName()%></td>
					<td><%=user.getPassWord()%></td>
				</tr>
				<%
					}
				%>
			</tbody>
		</table>
		<ul class="page-num-ul clearfix" style="width:400px; padding: 3px;">
			<li style="line-height:24px;">共<%=totalCount%>条记录   <%=pageIndex%>/<%=totalPage%>页</li>
			<%
				if (pageIndex > 1) {
			%>
			<li><a href="success.jsp?pageIndex=1">首页</a></li>
			<li><a href="success.jsp?pageIndex=<%=pageIndex - 1%>">上一页</a></li>
			<%
				}if(pageIndex<totalPage){
			%>
			<li><a href="success.jsp?pageIndex=<%=pageIndex + 1%>">下一页</a></li>
			<li><a href="success.jsp?pageIndex=<%=totalPage%>">最后一页</a></li>
			  
			<%
			  }
			 %>
		</ul>




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值