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);
}
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>